{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# 使用手册\n",
    "\n",
    "本手册覆盖一些基础的使用模式和最佳实践来帮助学习使用Matplotlib\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "xelatex\n"
     ]
    },
    {
     "ename": "FileNotFoundError",
     "evalue": "[Errno 2] No such file or directory: 'kpsewhich': 'kpsewhich'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-1-2a31fd070730>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m     39\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mylabel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"\\\\XeLaTeX\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     40\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlegend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"unicode math 中文: $λ=∑_i^∞ μ_i^2$\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 41\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtight_layout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m.5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mtight_layout\u001b[0;34m(pad, h_pad, w_pad, rect)\u001b[0m\n\u001b[1;32m   1335\u001b[0m         labels) will fit into. Default is (0, 0, 1, 1).\n\u001b[1;32m   1336\u001b[0m     \"\"\"\n\u001b[0;32m-> 1337\u001b[0;31m     \u001b[0mgcf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtight_layout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpad\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mpad\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh_pad\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mh_pad\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mw_pad\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mw_pad\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrect\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrect\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1338\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1339\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/cbook/deprecation.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m    356\u001b[0m                 \u001b[0;34mf\"%(removal)s.  If any parameter follows {name!r}, they \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    357\u001b[0m                 f\"should be pass as keyword, not positionally.\")\n\u001b[0;32m--> 358\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    359\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    360\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/figure.py\u001b[0m in \u001b[0;36mtight_layout\u001b[0;34m(self, renderer, pad, h_pad, w_pad, rect)\u001b[0m\n\u001b[1;32m   2491\u001b[0m         kwargs = get_tight_layout_figure(\n\u001b[1;32m   2492\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubplotspec_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2493\u001b[0;31m             pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect)\n\u001b[0m\u001b[1;32m   2494\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2495\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msubplots_adjust\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/tight_layout.py\u001b[0m in \u001b[0;36mget_tight_layout_figure\u001b[0;34m(fig, axes_list, subplotspec_list, renderer, pad, h_pad, w_pad, rect)\u001b[0m\n\u001b[1;32m    358\u001b[0m                                      \u001b[0msubplot_list\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msubplot_list\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    359\u001b[0m                                      \u001b[0max_bbox_list\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0max_bbox_list\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 360\u001b[0;31m                                      pad=pad, h_pad=h_pad, w_pad=w_pad)\n\u001b[0m\u001b[1;32m    361\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    362\u001b[0m     \u001b[0;31m# kwargs can be none if tight_layout fails...\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/tight_layout.py\u001b[0m in \u001b[0;36mauto_adjust_subplotpars\u001b[0;34m(fig, renderer, nrows_ncols, num1num2_list, subplot_list, ax_bbox_list, pad, h_pad, w_pad, rect)\u001b[0m\n\u001b[1;32m    107\u001b[0m             \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    108\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 109\u001b[0;31m         tight_bbox_raw = union([ax.get_tightbbox(renderer) for ax in subplots\n\u001b[0m\u001b[1;32m    110\u001b[0m                                 if ax.get_visible()])\n\u001b[1;32m    111\u001b[0m         tight_bbox = TransformedBbox(tight_bbox_raw,\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/tight_layout.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m    108\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    109\u001b[0m         tight_bbox_raw = union([ax.get_tightbbox(renderer) for ax in subplots\n\u001b[0;32m--> 110\u001b[0;31m                                 if ax.get_visible()])\n\u001b[0m\u001b[1;32m    111\u001b[0m         tight_bbox = TransformedBbox(tight_bbox_raw,\n\u001b[1;32m    112\u001b[0m                                      fig.transFigure.inverted())\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36mget_tightbbox\u001b[0;34m(self, renderer, call_axes_locator, bbox_extra_artists)\u001b[0m\n\u001b[1;32m   4315\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   4316\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxison\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 4317\u001b[0;31m             \u001b[0mbb_xaxis\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxaxis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_tightbbox\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   4318\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mbb_xaxis\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   4319\u001b[0m                 \u001b[0mbb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbb_xaxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36mget_tightbbox\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m   1186\u001b[0m         \u001b[0mticks_to_draw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_ticks\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1187\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1188\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_label_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1189\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1190\u001b[0m         \u001b[0;31m# go back to just this axis's tick labels\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36m_update_label_position\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m   2019\u001b[0m         \u001b[0;31m# get bounding boxes for this axis and any siblings\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2020\u001b[0m         \u001b[0;31m# that have been set by `fig.align_xlabels()`\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2021\u001b[0;31m         \u001b[0mbboxes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbboxes2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_tick_boxes_siblings\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2022\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2023\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36m_get_tick_boxes_siblings\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m   2004\u001b[0m         \u001b[0;32mfor\u001b[0m \u001b[0mnn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgrp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_siblings\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2005\u001b[0m             \u001b[0mticks_to_draw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0maxx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxaxis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_ticks\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2006\u001b[0;31m             \u001b[0mtlb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtlb2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0maxx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxaxis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_tick_bboxes\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mticks_to_draw\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2007\u001b[0m             \u001b[0mbboxes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mextend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtlb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2008\u001b[0m             \u001b[0mbboxes2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mextend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtlb2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36m_get_tick_bboxes\u001b[0;34m(self, ticks, renderer)\u001b[0m\n\u001b[1;32m   1172\u001b[0m         \u001b[0;34m\"\"\"Return lists of bboxes for ticks' label1's and label2's.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1173\u001b[0m         return ([tick.label1.get_window_extent(renderer)\n\u001b[0;32m-> 1174\u001b[0;31m                  for tick in ticks if tick.label1.get_visible()],\n\u001b[0m\u001b[1;32m   1175\u001b[0m                 [tick.label2.get_window_extent(renderer)\n\u001b[1;32m   1176\u001b[0m                  for tick in ticks if tick.label2.get_visible()])\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m   1172\u001b[0m         \u001b[0;34m\"\"\"Return lists of bboxes for ticks' label1's and label2's.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1173\u001b[0m         return ([tick.label1.get_window_extent(renderer)\n\u001b[0;32m-> 1174\u001b[0;31m                  for tick in ticks if tick.label1.get_visible()],\n\u001b[0m\u001b[1;32m   1175\u001b[0m                 [tick.label2.get_window_extent(renderer)\n\u001b[1;32m   1176\u001b[0m                  for tick in ticks if tick.label2.get_visible()])\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/text.py\u001b[0m in \u001b[0;36mget_window_extent\u001b[0;34m(self, renderer, dpi)\u001b[0m\n\u001b[1;32m    903\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Cannot get window extent w/o renderer'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    904\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 905\u001b[0;31m         \u001b[0mbbox\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minfo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdescent\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_layout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_renderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    906\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_unitless_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    907\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_transform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/text.py\u001b[0m in \u001b[0;36m_get_layout\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m    291\u001b[0m         _, lp_h, lp_d = renderer.get_text_width_height_descent(\n\u001b[1;32m    292\u001b[0m             \u001b[0;34m\"lp\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_fontproperties\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 293\u001b[0;31m             ismath=\"TeX\" if self.get_usetex() else False)\n\u001b[0m\u001b[1;32m    294\u001b[0m         \u001b[0mmin_dy\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlp_h\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mlp_d\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_linespacing\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    295\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/backends/backend_agg.py\u001b[0m in \u001b[0;36mget_text_width_height_descent\u001b[0;34m(self, s, prop, ismath)\u001b[0m\n\u001b[1;32m    202\u001b[0m             \u001b[0mfontsize\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_size_in_points\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    203\u001b[0m             w, h, d = texmanager.get_text_width_height_descent(\n\u001b[0;32m--> 204\u001b[0;31m                 s, fontsize, renderer=self)\n\u001b[0m\u001b[1;32m    205\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mw\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    206\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/texmanager.py\u001b[0m in \u001b[0;36mget_text_width_height_descent\u001b[0;34m(self, tex, fontsize, renderer)\u001b[0m\n\u001b[1;32m    450\u001b[0m             \u001b[0mdvifile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmake_dvi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfontsize\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    451\u001b[0m             \u001b[0;32mwith\u001b[0m \u001b[0mdviread\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDvi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdvifile\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m72\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mdpi_fraction\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mdvi\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 452\u001b[0;31m                 \u001b[0mpage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdvi\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    453\u001b[0m             \u001b[0;31m# A total height (including the descent) needs to be returned.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    454\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mheight\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdescent\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdescent\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m__iter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    241\u001b[0m             \u001b[0mintegers\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    242\u001b[0m         \"\"\"\n\u001b[0;32m--> 243\u001b[0;31m         \u001b[0;32mwhile\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    244\u001b[0m             \u001b[0;32myield\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_output\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    245\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    299\u001b[0m         \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    300\u001b[0m             \u001b[0mbyte\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 301\u001b[0;31m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dtable\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mbyte\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbyte\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    302\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mbyte\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m140\u001b[0m\u001b[0;34m:\u001b[0m                         \u001b[0;31m# end of page\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    303\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(self, byte)\u001b[0m\n\u001b[1;32m    159\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mstate\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstate\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mstate\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    160\u001b[0m                 \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"state precondition failed\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 161\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbyte\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mf\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mget_args\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    162\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mmax\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    163\u001b[0m             \u001b[0mtable\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_fnt_def\u001b[0;34m(self, k, c, s, d, a, l)\u001b[0m\n\u001b[1;32m    439\u001b[0m     \u001b[0;34m@\u001b[0m\u001b[0m_dispatch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m243\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmax\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m246\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'olen1'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u4'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u4'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u4'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u1'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u1'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    440\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_fnt_def\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 441\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_fnt_def_real\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    442\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    443\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_fnt_def_real\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_fnt_def_real\u001b[0;34m(self, k, c, s, d, a, l)\u001b[0m\n\u001b[1;32m    444\u001b[0m         \u001b[0mn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    445\u001b[0m         \u001b[0mfontname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mn\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'ascii'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 446\u001b[0;31m         \u001b[0mtfm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_tfmfile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfontname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    447\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mtfm\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    448\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mFileNotFoundError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"missing font metrics file: %s\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mfontname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_fontfile\u001b[0;34m(cls, suffix, texname)\u001b[0m\n\u001b[1;32m   1054\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mlru_cache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1055\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_fontfile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msuffix\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtexname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1056\u001b[0;31m     \u001b[0mfilename\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfind_tex_file\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtexname\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0msuffix\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1057\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfilename\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1058\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36mfind_tex_file\u001b[0;34m(filename, format)\u001b[0m\n\u001b[1;32m   1043\u001b[0m     \u001b[0mcmd\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1044\u001b[0m     \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1045\u001b[0;31m         \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcbook\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_and_log_subprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_log\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1046\u001b[0m     \u001b[0;32mexcept\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1047\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0;34m''\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/cbook/__init__.py\u001b[0m in \u001b[0;36m_check_and_log_subprocess\u001b[0;34m(command, logger, **kwargs)\u001b[0m\n\u001b[1;32m   2075\u001b[0m     \u001b[0mlogger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'%s'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_pformat_subprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2076\u001b[0m     proc = subprocess.run(\n\u001b[0;32m-> 2077\u001b[0;31m         command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, **kwargs)\n\u001b[0m\u001b[1;32m   2078\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mproc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreturncode\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2079\u001b[0m         raise RuntimeError(\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(input, timeout, check, *popenargs, **kwargs)\u001b[0m\n\u001b[1;32m    421\u001b[0m         \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'stdin'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPIPE\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    422\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 423\u001b[0;31m     \u001b[0;32mwith\u001b[0m \u001b[0mPopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mpopenargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mprocess\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    424\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    425\u001b[0m             \u001b[0mstdout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstderr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprocess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcommunicate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)\u001b[0m\n\u001b[1;32m    727\u001b[0m                                 \u001b[0mc2pread\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc2pwrite\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    728\u001b[0m                                 \u001b[0merrread\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrwrite\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 729\u001b[0;31m                                 restore_signals, start_new_session)\n\u001b[0m\u001b[1;32m    730\u001b[0m         \u001b[0;32mexcept\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    731\u001b[0m             \u001b[0;31m# Cleanup if the child failed starting.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36m_execute_child\u001b[0;34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session)\u001b[0m\n\u001b[1;32m   1362\u001b[0m                         \u001b[0;32mif\u001b[0m \u001b[0merrno_num\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0merrno\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mENOENT\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1363\u001b[0m                             \u001b[0merr_msg\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m': '\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mrepr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr_filename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1364\u001b[0;31m                     \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merrno_num\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_msg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_filename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1365\u001b[0m                 \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr_msg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1366\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'kpsewhich': 'kpsewhich'"
     ]
    },
    {
     "ename": "FileNotFoundError",
     "evalue": "[Errno 2] No such file or directory: 'kpsewhich': 'kpsewhich'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/IPython/core/formatters.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, obj)\u001b[0m\n\u001b[1;32m    339\u001b[0m                 \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    340\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 341\u001b[0;31m                 \u001b[0;32mreturn\u001b[0m \u001b[0mprinter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    342\u001b[0m             \u001b[0;31m# Finally look for special method names\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    343\u001b[0m             \u001b[0mmethod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_real_method\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_method\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/IPython/core/pylabtools.py\u001b[0m in \u001b[0;36m<lambda>\u001b[0;34m(fig)\u001b[0m\n\u001b[1;32m    246\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    247\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0;34m'png'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mformats\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 248\u001b[0;31m         \u001b[0mpng_formatter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfor_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mFigure\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mprint_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'png'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    249\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0;34m'retina'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mformats\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;34m'png2x'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mformats\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    250\u001b[0m         \u001b[0mpng_formatter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfor_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mFigure\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mretina_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/IPython/core/pylabtools.py\u001b[0m in \u001b[0;36mprint_figure\u001b[0;34m(fig, fmt, bbox_inches, **kwargs)\u001b[0m\n\u001b[1;32m    130\u001b[0m         \u001b[0mFigureCanvasBase\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    131\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 132\u001b[0;31m     \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbytes_io\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    133\u001b[0m     \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbytes_io\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetvalue\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    134\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mfmt\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'svg'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/backend_bases.py\u001b[0m in \u001b[0;36mprint_figure\u001b[0;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, **kwargs)\u001b[0m\n\u001b[1;32m   2077\u001b[0m                             print_method, dpi=dpi, orientation=orientation),\n\u001b[1;32m   2078\u001b[0m                         draw_disabled=True)\n\u001b[0;32m-> 2079\u001b[0;31m                     \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2080\u001b[0m                     \u001b[0mbbox_artists\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"bbox_extra_artists\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2081\u001b[0m                     bbox_inches = self.figure.get_tightbbox(renderer,\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mdraw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m     36\u001b[0m                 \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstart_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     37\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 38\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     39\u001b[0m         \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     40\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0martist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_agg_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/figure.py\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m   1734\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpatch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1735\u001b[0m             mimage._draw_list_compositing_images(\n\u001b[0;32m-> 1736\u001b[0;31m                 renderer, self, artists, self.suppressComposite)\n\u001b[0m\u001b[1;32m   1737\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1738\u001b[0m             \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose_group\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'figure'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/image.py\u001b[0m in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[1;32m    135\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mnot_composite\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhas_images\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    136\u001b[0m         \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0martists\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 137\u001b[0;31m             \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    138\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    139\u001b[0m         \u001b[0;31m# Composite any adjacent images together\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mdraw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m     36\u001b[0m                 \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstart_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     37\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 38\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     39\u001b[0m         \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     40\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0martist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_agg_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, renderer, inframe)\u001b[0m\n\u001b[1;32m   2628\u001b[0m             \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstop_rasterizing\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2629\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2630\u001b[0;31m         \u001b[0mmimage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_draw_list_compositing_images\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0martists\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2631\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2632\u001b[0m         \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose_group\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'axes'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/image.py\u001b[0m in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[1;32m    135\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mnot_composite\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhas_images\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    136\u001b[0m         \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0martists\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 137\u001b[0;31m             \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    138\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    139\u001b[0m         \u001b[0;31m# Composite any adjacent images together\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mdraw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m     36\u001b[0m                 \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstart_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     37\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 38\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     39\u001b[0m         \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     40\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0martist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_agg_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1227\u001b[0m         \u001b[0mticks_to_draw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_ticks\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1228\u001b[0m         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,\n\u001b[0;32m-> 1229\u001b[0;31m                                                                 renderer)\n\u001b[0m\u001b[1;32m   1230\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1231\u001b[0m         \u001b[0;32mfor\u001b[0m \u001b[0mtick\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mticks_to_draw\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36m_get_tick_bboxes\u001b[0;34m(self, ticks, renderer)\u001b[0m\n\u001b[1;32m   1172\u001b[0m         \u001b[0;34m\"\"\"Return lists of bboxes for ticks' label1's and label2's.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1173\u001b[0m         return ([tick.label1.get_window_extent(renderer)\n\u001b[0;32m-> 1174\u001b[0;31m                  for tick in ticks if tick.label1.get_visible()],\n\u001b[0m\u001b[1;32m   1175\u001b[0m                 [tick.label2.get_window_extent(renderer)\n\u001b[1;32m   1176\u001b[0m                  for tick in ticks if tick.label2.get_visible()])\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m   1172\u001b[0m         \u001b[0;34m\"\"\"Return lists of bboxes for ticks' label1's and label2's.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1173\u001b[0m         return ([tick.label1.get_window_extent(renderer)\n\u001b[0;32m-> 1174\u001b[0;31m                  for tick in ticks if tick.label1.get_visible()],\n\u001b[0m\u001b[1;32m   1175\u001b[0m                 [tick.label2.get_window_extent(renderer)\n\u001b[1;32m   1176\u001b[0m                  for tick in ticks if tick.label2.get_visible()])\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/text.py\u001b[0m in \u001b[0;36mget_window_extent\u001b[0;34m(self, renderer, dpi)\u001b[0m\n\u001b[1;32m    903\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Cannot get window extent w/o renderer'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    904\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 905\u001b[0;31m         \u001b[0mbbox\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minfo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdescent\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_layout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_renderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    906\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_unitless_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    907\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_transform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/text.py\u001b[0m in \u001b[0;36m_get_layout\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m    291\u001b[0m         _, lp_h, lp_d = renderer.get_text_width_height_descent(\n\u001b[1;32m    292\u001b[0m             \u001b[0;34m\"lp\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_fontproperties\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 293\u001b[0;31m             ismath=\"TeX\" if self.get_usetex() else False)\n\u001b[0m\u001b[1;32m    294\u001b[0m         \u001b[0mmin_dy\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlp_h\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mlp_d\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_linespacing\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    295\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/backends/backend_agg.py\u001b[0m in \u001b[0;36mget_text_width_height_descent\u001b[0;34m(self, s, prop, ismath)\u001b[0m\n\u001b[1;32m    202\u001b[0m             \u001b[0mfontsize\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_size_in_points\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    203\u001b[0m             w, h, d = texmanager.get_text_width_height_descent(\n\u001b[0;32m--> 204\u001b[0;31m                 s, fontsize, renderer=self)\n\u001b[0m\u001b[1;32m    205\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mw\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    206\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/texmanager.py\u001b[0m in \u001b[0;36mget_text_width_height_descent\u001b[0;34m(self, tex, fontsize, renderer)\u001b[0m\n\u001b[1;32m    450\u001b[0m             \u001b[0mdvifile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmake_dvi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfontsize\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    451\u001b[0m             \u001b[0;32mwith\u001b[0m \u001b[0mdviread\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDvi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdvifile\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m72\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mdpi_fraction\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mdvi\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 452\u001b[0;31m                 \u001b[0mpage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdvi\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    453\u001b[0m             \u001b[0;31m# A total height (including the descent) needs to be returned.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    454\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mheight\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdescent\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdescent\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m__iter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    241\u001b[0m             \u001b[0mintegers\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    242\u001b[0m         \"\"\"\n\u001b[0;32m--> 243\u001b[0;31m         \u001b[0;32mwhile\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    244\u001b[0m             \u001b[0;32myield\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_output\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    245\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    299\u001b[0m         \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    300\u001b[0m             \u001b[0mbyte\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 301\u001b[0;31m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dtable\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mbyte\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbyte\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    302\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mbyte\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m140\u001b[0m\u001b[0;34m:\u001b[0m                         \u001b[0;31m# end of page\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    303\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(self, byte)\u001b[0m\n\u001b[1;32m    159\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mstate\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstate\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mstate\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    160\u001b[0m                 \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"state precondition failed\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 161\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbyte\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mf\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mget_args\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    162\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mmax\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    163\u001b[0m             \u001b[0mtable\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_fnt_def\u001b[0;34m(self, k, c, s, d, a, l)\u001b[0m\n\u001b[1;32m    439\u001b[0m     \u001b[0;34m@\u001b[0m\u001b[0m_dispatch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m243\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmax\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m246\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'olen1'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u4'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u4'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u4'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u1'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u1'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    440\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_fnt_def\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 441\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_fnt_def_real\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    442\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    443\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_fnt_def_real\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_fnt_def_real\u001b[0;34m(self, k, c, s, d, a, l)\u001b[0m\n\u001b[1;32m    444\u001b[0m         \u001b[0mn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    445\u001b[0m         \u001b[0mfontname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mn\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'ascii'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 446\u001b[0;31m         \u001b[0mtfm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_tfmfile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfontname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    447\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mtfm\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    448\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mFileNotFoundError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"missing font metrics file: %s\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mfontname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_fontfile\u001b[0;34m(cls, suffix, texname)\u001b[0m\n\u001b[1;32m   1054\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mlru_cache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1055\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_fontfile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msuffix\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtexname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1056\u001b[0;31m     \u001b[0mfilename\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfind_tex_file\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtexname\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0msuffix\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1057\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfilename\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1058\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36mfind_tex_file\u001b[0;34m(filename, format)\u001b[0m\n\u001b[1;32m   1043\u001b[0m     \u001b[0mcmd\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1044\u001b[0m     \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1045\u001b[0;31m         \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcbook\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_and_log_subprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_log\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1046\u001b[0m     \u001b[0;32mexcept\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1047\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0;34m''\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/cbook/__init__.py\u001b[0m in \u001b[0;36m_check_and_log_subprocess\u001b[0;34m(command, logger, **kwargs)\u001b[0m\n\u001b[1;32m   2075\u001b[0m     \u001b[0mlogger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'%s'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_pformat_subprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2076\u001b[0m     proc = subprocess.run(\n\u001b[0;32m-> 2077\u001b[0;31m         command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, **kwargs)\n\u001b[0m\u001b[1;32m   2078\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mproc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreturncode\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2079\u001b[0m         raise RuntimeError(\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(input, timeout, check, *popenargs, **kwargs)\u001b[0m\n\u001b[1;32m    421\u001b[0m         \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'stdin'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPIPE\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    422\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 423\u001b[0;31m     \u001b[0;32mwith\u001b[0m \u001b[0mPopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mpopenargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mprocess\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    424\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    425\u001b[0m             \u001b[0mstdout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstderr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprocess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcommunicate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)\u001b[0m\n\u001b[1;32m    727\u001b[0m                                 \u001b[0mc2pread\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc2pwrite\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    728\u001b[0m                                 \u001b[0merrread\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrwrite\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 729\u001b[0;31m                                 restore_signals, start_new_session)\n\u001b[0m\u001b[1;32m    730\u001b[0m         \u001b[0;32mexcept\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    731\u001b[0m             \u001b[0;31m# Cleanup if the child failed starting.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36m_execute_child\u001b[0;34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session)\u001b[0m\n\u001b[1;32m   1362\u001b[0m                         \u001b[0;32mif\u001b[0m \u001b[0merrno_num\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0merrno\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mENOENT\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1363\u001b[0m                             \u001b[0merr_msg\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m': '\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mrepr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr_filename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1364\u001b[0;31m                     \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merrno_num\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_msg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_filename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1365\u001b[0m                 \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr_msg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1366\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'kpsewhich': 'kpsewhich'"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 324x180 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# sphinx_gallery_thumbnail_number = 3\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# import matplotlib as mpl\n",
    "# mpl.use(\"pgf\")\n",
    "\n",
    "# pgf_with_custom_preamble = {\n",
    "#     \"font.family\": \"serif\", # use serif/main font for text elements\n",
    "#     \"text.usetex\": True,    # use inline math for ticks\n",
    "#     \"pgf.rcfonts\": False,   # don't setup fonts from rc parameters\n",
    "#     \"pgf.preamble\": [\n",
    "#          \"\\\\usepackage{units}\",         # load additional packages\n",
    "#          \"\\\\usepackage{metalogo}\",\n",
    "#          \"\\\\usepackage{unicode-math}\",  # unicode math setup\n",
    "# #          r\"\\setmathfont{xits-math.otf}\",\n",
    "#          r\"\\setmainfont{DejaVu Serif}\", # serif font via preamble\n",
    "#          ]\n",
    "# }\n",
    "# mpl.rcParams.update(pgf_with_custom_preamble) \n",
    "# pgf_with_pdflatex = {\n",
    "#     \"pgf.texsystem\": \"pdflatex\",#pdflatex | xelatex\n",
    "#     \"pgf.preamble\": [\n",
    "#          r\"\\usepackage[utf8x]{inputenc}\",\n",
    "#          r\"\\usepackage[T1]{fontenc}\",\n",
    "#          r\"\\usepackage{cmbright}\",\n",
    "#          ]\n",
    "# }\n",
    "# mpl.rcParams.update(pgf_with_pdflatex)\n",
    "\n",
    "print(plt.rcParams['pgf.texsystem'])\n",
    "\n",
    "# plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签\n",
    "# plt.rcParams['axes.unicode_minus']=False #用来正常显示负号\n",
    "\n",
    "plt.figure(figsize=(4.5,2.5))\n",
    "plt.plot(range(5))\n",
    "plt.xlabel(\"unicode text中文: я, ψ, €, ü, \\\\unitfrac[10]{°}{μm}\")\n",
    "plt.ylabel(\"\\\\XeLaTeX\")\n",
    "plt.legend([\"unicode math 中文: $λ=∑_i^∞ μ_i^2$\"])\n",
    "plt.tight_layout(.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "ename": "FileNotFoundError",
     "evalue": "[Errno 2] No such file or directory: 'kpsewhich': 'kpsewhich'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-2-72cc40366bdd>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      5\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2.5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2.\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"sans-serif\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfamily\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"sans-serif\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      6\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxlabel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mu\"中文μ is not $\\\\mu$\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtight_layout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m.5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mtight_layout\u001b[0;34m(pad, h_pad, w_pad, rect)\u001b[0m\n\u001b[1;32m   1335\u001b[0m         labels) will fit into. Default is (0, 0, 1, 1).\n\u001b[1;32m   1336\u001b[0m     \"\"\"\n\u001b[0;32m-> 1337\u001b[0;31m     \u001b[0mgcf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtight_layout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpad\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mpad\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh_pad\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mh_pad\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mw_pad\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mw_pad\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrect\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrect\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1338\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1339\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/cbook/deprecation.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m    356\u001b[0m                 \u001b[0;34mf\"%(removal)s.  If any parameter follows {name!r}, they \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    357\u001b[0m                 f\"should be pass as keyword, not positionally.\")\n\u001b[0;32m--> 358\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    359\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    360\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/figure.py\u001b[0m in \u001b[0;36mtight_layout\u001b[0;34m(self, renderer, pad, h_pad, w_pad, rect)\u001b[0m\n\u001b[1;32m   2491\u001b[0m         kwargs = get_tight_layout_figure(\n\u001b[1;32m   2492\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubplotspec_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2493\u001b[0;31m             pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect)\n\u001b[0m\u001b[1;32m   2494\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2495\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msubplots_adjust\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/tight_layout.py\u001b[0m in \u001b[0;36mget_tight_layout_figure\u001b[0;34m(fig, axes_list, subplotspec_list, renderer, pad, h_pad, w_pad, rect)\u001b[0m\n\u001b[1;32m    358\u001b[0m                                      \u001b[0msubplot_list\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msubplot_list\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    359\u001b[0m                                      \u001b[0max_bbox_list\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0max_bbox_list\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 360\u001b[0;31m                                      pad=pad, h_pad=h_pad, w_pad=w_pad)\n\u001b[0m\u001b[1;32m    361\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    362\u001b[0m     \u001b[0;31m# kwargs can be none if tight_layout fails...\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/tight_layout.py\u001b[0m in \u001b[0;36mauto_adjust_subplotpars\u001b[0;34m(fig, renderer, nrows_ncols, num1num2_list, subplot_list, ax_bbox_list, pad, h_pad, w_pad, rect)\u001b[0m\n\u001b[1;32m    107\u001b[0m             \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    108\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 109\u001b[0;31m         tight_bbox_raw = union([ax.get_tightbbox(renderer) for ax in subplots\n\u001b[0m\u001b[1;32m    110\u001b[0m                                 if ax.get_visible()])\n\u001b[1;32m    111\u001b[0m         tight_bbox = TransformedBbox(tight_bbox_raw,\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/tight_layout.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m    108\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    109\u001b[0m         tight_bbox_raw = union([ax.get_tightbbox(renderer) for ax in subplots\n\u001b[0;32m--> 110\u001b[0;31m                                 if ax.get_visible()])\n\u001b[0m\u001b[1;32m    111\u001b[0m         tight_bbox = TransformedBbox(tight_bbox_raw,\n\u001b[1;32m    112\u001b[0m                                      fig.transFigure.inverted())\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36mget_tightbbox\u001b[0;34m(self, renderer, call_axes_locator, bbox_extra_artists)\u001b[0m\n\u001b[1;32m   4315\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   4316\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxison\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 4317\u001b[0;31m             \u001b[0mbb_xaxis\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxaxis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_tightbbox\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   4318\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mbb_xaxis\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   4319\u001b[0m                 \u001b[0mbb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbb_xaxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36mget_tightbbox\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m   1186\u001b[0m         \u001b[0mticks_to_draw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_ticks\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1187\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1188\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_label_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1189\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1190\u001b[0m         \u001b[0;31m# go back to just this axis's tick labels\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36m_update_label_position\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m   2019\u001b[0m         \u001b[0;31m# get bounding boxes for this axis and any siblings\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2020\u001b[0m         \u001b[0;31m# that have been set by `fig.align_xlabels()`\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2021\u001b[0;31m         \u001b[0mbboxes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbboxes2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_tick_boxes_siblings\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2022\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2023\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36m_get_tick_boxes_siblings\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m   2004\u001b[0m         \u001b[0;32mfor\u001b[0m \u001b[0mnn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgrp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_siblings\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2005\u001b[0m             \u001b[0mticks_to_draw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0maxx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxaxis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_ticks\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2006\u001b[0;31m             \u001b[0mtlb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtlb2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0maxx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxaxis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_tick_bboxes\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mticks_to_draw\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2007\u001b[0m             \u001b[0mbboxes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mextend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtlb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2008\u001b[0m             \u001b[0mbboxes2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mextend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtlb2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36m_get_tick_bboxes\u001b[0;34m(self, ticks, renderer)\u001b[0m\n\u001b[1;32m   1172\u001b[0m         \u001b[0;34m\"\"\"Return lists of bboxes for ticks' label1's and label2's.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1173\u001b[0m         return ([tick.label1.get_window_extent(renderer)\n\u001b[0;32m-> 1174\u001b[0;31m                  for tick in ticks if tick.label1.get_visible()],\n\u001b[0m\u001b[1;32m   1175\u001b[0m                 [tick.label2.get_window_extent(renderer)\n\u001b[1;32m   1176\u001b[0m                  for tick in ticks if tick.label2.get_visible()])\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m   1172\u001b[0m         \u001b[0;34m\"\"\"Return lists of bboxes for ticks' label1's and label2's.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1173\u001b[0m         return ([tick.label1.get_window_extent(renderer)\n\u001b[0;32m-> 1174\u001b[0;31m                  for tick in ticks if tick.label1.get_visible()],\n\u001b[0m\u001b[1;32m   1175\u001b[0m                 [tick.label2.get_window_extent(renderer)\n\u001b[1;32m   1176\u001b[0m                  for tick in ticks if tick.label2.get_visible()])\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/text.py\u001b[0m in \u001b[0;36mget_window_extent\u001b[0;34m(self, renderer, dpi)\u001b[0m\n\u001b[1;32m    903\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Cannot get window extent w/o renderer'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    904\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 905\u001b[0;31m         \u001b[0mbbox\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minfo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdescent\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_layout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_renderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    906\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_unitless_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    907\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_transform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/text.py\u001b[0m in \u001b[0;36m_get_layout\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m    291\u001b[0m         _, lp_h, lp_d = renderer.get_text_width_height_descent(\n\u001b[1;32m    292\u001b[0m             \u001b[0;34m\"lp\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_fontproperties\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 293\u001b[0;31m             ismath=\"TeX\" if self.get_usetex() else False)\n\u001b[0m\u001b[1;32m    294\u001b[0m         \u001b[0mmin_dy\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlp_h\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mlp_d\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_linespacing\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    295\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/backends/backend_agg.py\u001b[0m in \u001b[0;36mget_text_width_height_descent\u001b[0;34m(self, s, prop, ismath)\u001b[0m\n\u001b[1;32m    202\u001b[0m             \u001b[0mfontsize\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_size_in_points\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    203\u001b[0m             w, h, d = texmanager.get_text_width_height_descent(\n\u001b[0;32m--> 204\u001b[0;31m                 s, fontsize, renderer=self)\n\u001b[0m\u001b[1;32m    205\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mw\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    206\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/texmanager.py\u001b[0m in \u001b[0;36mget_text_width_height_descent\u001b[0;34m(self, tex, fontsize, renderer)\u001b[0m\n\u001b[1;32m    450\u001b[0m             \u001b[0mdvifile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmake_dvi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfontsize\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    451\u001b[0m             \u001b[0;32mwith\u001b[0m \u001b[0mdviread\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDvi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdvifile\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m72\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mdpi_fraction\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mdvi\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 452\u001b[0;31m                 \u001b[0mpage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdvi\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    453\u001b[0m             \u001b[0;31m# A total height (including the descent) needs to be returned.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    454\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mheight\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdescent\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdescent\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m__iter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    241\u001b[0m             \u001b[0mintegers\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    242\u001b[0m         \"\"\"\n\u001b[0;32m--> 243\u001b[0;31m         \u001b[0;32mwhile\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    244\u001b[0m             \u001b[0;32myield\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_output\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    245\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    299\u001b[0m         \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    300\u001b[0m             \u001b[0mbyte\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 301\u001b[0;31m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dtable\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mbyte\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbyte\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    302\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mbyte\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m140\u001b[0m\u001b[0;34m:\u001b[0m                         \u001b[0;31m# end of page\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    303\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(self, byte)\u001b[0m\n\u001b[1;32m    159\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mstate\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstate\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mstate\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    160\u001b[0m                 \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"state precondition failed\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 161\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbyte\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mf\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mget_args\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    162\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mmax\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    163\u001b[0m             \u001b[0mtable\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_fnt_def\u001b[0;34m(self, k, c, s, d, a, l)\u001b[0m\n\u001b[1;32m    439\u001b[0m     \u001b[0;34m@\u001b[0m\u001b[0m_dispatch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m243\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmax\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m246\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'olen1'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u4'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u4'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u4'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u1'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u1'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    440\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_fnt_def\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 441\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_fnt_def_real\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    442\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    443\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_fnt_def_real\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_fnt_def_real\u001b[0;34m(self, k, c, s, d, a, l)\u001b[0m\n\u001b[1;32m    444\u001b[0m         \u001b[0mn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    445\u001b[0m         \u001b[0mfontname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mn\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'ascii'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 446\u001b[0;31m         \u001b[0mtfm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_tfmfile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfontname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    447\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mtfm\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    448\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mFileNotFoundError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"missing font metrics file: %s\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mfontname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_fontfile\u001b[0;34m(cls, suffix, texname)\u001b[0m\n\u001b[1;32m   1054\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mlru_cache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1055\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_fontfile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msuffix\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtexname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1056\u001b[0;31m     \u001b[0mfilename\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfind_tex_file\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtexname\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0msuffix\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1057\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfilename\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1058\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36mfind_tex_file\u001b[0;34m(filename, format)\u001b[0m\n\u001b[1;32m   1043\u001b[0m     \u001b[0mcmd\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1044\u001b[0m     \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1045\u001b[0;31m         \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcbook\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_and_log_subprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_log\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1046\u001b[0m     \u001b[0;32mexcept\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1047\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0;34m''\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/cbook/__init__.py\u001b[0m in \u001b[0;36m_check_and_log_subprocess\u001b[0;34m(command, logger, **kwargs)\u001b[0m\n\u001b[1;32m   2075\u001b[0m     \u001b[0mlogger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'%s'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_pformat_subprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2076\u001b[0m     proc = subprocess.run(\n\u001b[0;32m-> 2077\u001b[0;31m         command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, **kwargs)\n\u001b[0m\u001b[1;32m   2078\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mproc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreturncode\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2079\u001b[0m         raise RuntimeError(\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(input, timeout, check, *popenargs, **kwargs)\u001b[0m\n\u001b[1;32m    421\u001b[0m         \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'stdin'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPIPE\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    422\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 423\u001b[0;31m     \u001b[0;32mwith\u001b[0m \u001b[0mPopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mpopenargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mprocess\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    424\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    425\u001b[0m             \u001b[0mstdout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstderr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprocess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcommunicate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)\u001b[0m\n\u001b[1;32m    727\u001b[0m                                 \u001b[0mc2pread\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc2pwrite\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    728\u001b[0m                                 \u001b[0merrread\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrwrite\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 729\u001b[0;31m                                 restore_signals, start_new_session)\n\u001b[0m\u001b[1;32m    730\u001b[0m         \u001b[0;32mexcept\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    731\u001b[0m             \u001b[0;31m# Cleanup if the child failed starting.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36m_execute_child\u001b[0;34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session)\u001b[0m\n\u001b[1;32m   1362\u001b[0m                         \u001b[0;32mif\u001b[0m \u001b[0merrno_num\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0merrno\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mENOENT\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1363\u001b[0m                             \u001b[0merr_msg\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m': '\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mrepr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr_filename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1364\u001b[0;31m                     \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merrno_num\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_msg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_filename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1365\u001b[0m                 \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr_msg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1366\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'kpsewhich': 'kpsewhich'"
     ]
    },
    {
     "ename": "FileNotFoundError",
     "evalue": "[Errno 2] No such file or directory: 'kpsewhich': 'kpsewhich'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/IPython/core/formatters.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, obj)\u001b[0m\n\u001b[1;32m    339\u001b[0m                 \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    340\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 341\u001b[0;31m                 \u001b[0;32mreturn\u001b[0m \u001b[0mprinter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    342\u001b[0m             \u001b[0;31m# Finally look for special method names\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    343\u001b[0m             \u001b[0mmethod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_real_method\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_method\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/IPython/core/pylabtools.py\u001b[0m in \u001b[0;36m<lambda>\u001b[0;34m(fig)\u001b[0m\n\u001b[1;32m    246\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    247\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0;34m'png'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mformats\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 248\u001b[0;31m         \u001b[0mpng_formatter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfor_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mFigure\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mprint_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'png'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    249\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0;34m'retina'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mformats\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;34m'png2x'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mformats\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    250\u001b[0m         \u001b[0mpng_formatter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfor_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mFigure\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mretina_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/IPython/core/pylabtools.py\u001b[0m in \u001b[0;36mprint_figure\u001b[0;34m(fig, fmt, bbox_inches, **kwargs)\u001b[0m\n\u001b[1;32m    130\u001b[0m         \u001b[0mFigureCanvasBase\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    131\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 132\u001b[0;31m     \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbytes_io\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    133\u001b[0m     \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbytes_io\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetvalue\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    134\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mfmt\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'svg'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/backend_bases.py\u001b[0m in \u001b[0;36mprint_figure\u001b[0;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, **kwargs)\u001b[0m\n\u001b[1;32m   2077\u001b[0m                             print_method, dpi=dpi, orientation=orientation),\n\u001b[1;32m   2078\u001b[0m                         draw_disabled=True)\n\u001b[0;32m-> 2079\u001b[0;31m                     \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2080\u001b[0m                     \u001b[0mbbox_artists\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"bbox_extra_artists\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2081\u001b[0m                     bbox_inches = self.figure.get_tightbbox(renderer,\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mdraw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m     36\u001b[0m                 \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstart_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     37\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 38\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     39\u001b[0m         \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     40\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0martist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_agg_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/figure.py\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m   1734\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpatch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1735\u001b[0m             mimage._draw_list_compositing_images(\n\u001b[0;32m-> 1736\u001b[0;31m                 renderer, self, artists, self.suppressComposite)\n\u001b[0m\u001b[1;32m   1737\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1738\u001b[0m             \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose_group\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'figure'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/image.py\u001b[0m in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[1;32m    135\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mnot_composite\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhas_images\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    136\u001b[0m         \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0martists\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 137\u001b[0;31m             \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    138\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    139\u001b[0m         \u001b[0;31m# Composite any adjacent images together\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mdraw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m     36\u001b[0m                 \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstart_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     37\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 38\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     39\u001b[0m         \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     40\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0martist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_agg_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, renderer, inframe)\u001b[0m\n\u001b[1;32m   2628\u001b[0m             \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstop_rasterizing\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2629\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2630\u001b[0;31m         \u001b[0mmimage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_draw_list_compositing_images\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0martists\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2631\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2632\u001b[0m         \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose_group\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'axes'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/image.py\u001b[0m in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[1;32m    135\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mnot_composite\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhas_images\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    136\u001b[0m         \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0martists\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 137\u001b[0;31m             \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    138\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    139\u001b[0m         \u001b[0;31m# Composite any adjacent images together\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mdraw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m     36\u001b[0m                 \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstart_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     37\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 38\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     39\u001b[0m         \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     40\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0martist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_agg_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1227\u001b[0m         \u001b[0mticks_to_draw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_ticks\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1228\u001b[0m         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,\n\u001b[0;32m-> 1229\u001b[0;31m                                                                 renderer)\n\u001b[0m\u001b[1;32m   1230\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1231\u001b[0m         \u001b[0;32mfor\u001b[0m \u001b[0mtick\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mticks_to_draw\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36m_get_tick_bboxes\u001b[0;34m(self, ticks, renderer)\u001b[0m\n\u001b[1;32m   1172\u001b[0m         \u001b[0;34m\"\"\"Return lists of bboxes for ticks' label1's and label2's.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1173\u001b[0m         return ([tick.label1.get_window_extent(renderer)\n\u001b[0;32m-> 1174\u001b[0;31m                  for tick in ticks if tick.label1.get_visible()],\n\u001b[0m\u001b[1;32m   1175\u001b[0m                 [tick.label2.get_window_extent(renderer)\n\u001b[1;32m   1176\u001b[0m                  for tick in ticks if tick.label2.get_visible()])\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axis.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m   1172\u001b[0m         \u001b[0;34m\"\"\"Return lists of bboxes for ticks' label1's and label2's.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1173\u001b[0m         return ([tick.label1.get_window_extent(renderer)\n\u001b[0;32m-> 1174\u001b[0;31m                  for tick in ticks if tick.label1.get_visible()],\n\u001b[0m\u001b[1;32m   1175\u001b[0m                 [tick.label2.get_window_extent(renderer)\n\u001b[1;32m   1176\u001b[0m                  for tick in ticks if tick.label2.get_visible()])\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/text.py\u001b[0m in \u001b[0;36mget_window_extent\u001b[0;34m(self, renderer, dpi)\u001b[0m\n\u001b[1;32m    903\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Cannot get window extent w/o renderer'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    904\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 905\u001b[0;31m         \u001b[0mbbox\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minfo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdescent\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_layout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_renderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    906\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_unitless_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    907\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_transform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/text.py\u001b[0m in \u001b[0;36m_get_layout\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m    291\u001b[0m         _, lp_h, lp_d = renderer.get_text_width_height_descent(\n\u001b[1;32m    292\u001b[0m             \u001b[0;34m\"lp\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_fontproperties\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 293\u001b[0;31m             ismath=\"TeX\" if self.get_usetex() else False)\n\u001b[0m\u001b[1;32m    294\u001b[0m         \u001b[0mmin_dy\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlp_h\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mlp_d\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_linespacing\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    295\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/backends/backend_agg.py\u001b[0m in \u001b[0;36mget_text_width_height_descent\u001b[0;34m(self, s, prop, ismath)\u001b[0m\n\u001b[1;32m    202\u001b[0m             \u001b[0mfontsize\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_size_in_points\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    203\u001b[0m             w, h, d = texmanager.get_text_width_height_descent(\n\u001b[0;32m--> 204\u001b[0;31m                 s, fontsize, renderer=self)\n\u001b[0m\u001b[1;32m    205\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mw\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    206\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/texmanager.py\u001b[0m in \u001b[0;36mget_text_width_height_descent\u001b[0;34m(self, tex, fontsize, renderer)\u001b[0m\n\u001b[1;32m    450\u001b[0m             \u001b[0mdvifile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmake_dvi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfontsize\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    451\u001b[0m             \u001b[0;32mwith\u001b[0m \u001b[0mdviread\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDvi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdvifile\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m72\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mdpi_fraction\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mdvi\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 452\u001b[0;31m                 \u001b[0mpage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdvi\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    453\u001b[0m             \u001b[0;31m# A total height (including the descent) needs to be returned.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    454\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mheight\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdescent\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdescent\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m__iter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    241\u001b[0m             \u001b[0mintegers\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    242\u001b[0m         \"\"\"\n\u001b[0;32m--> 243\u001b[0;31m         \u001b[0;32mwhile\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    244\u001b[0m             \u001b[0;32myield\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_output\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    245\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    299\u001b[0m         \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    300\u001b[0m             \u001b[0mbyte\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 301\u001b[0;31m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dtable\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mbyte\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbyte\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    302\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mbyte\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m140\u001b[0m\u001b[0;34m:\u001b[0m                         \u001b[0;31m# end of page\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    303\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(self, byte)\u001b[0m\n\u001b[1;32m    159\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mstate\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstate\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mstate\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    160\u001b[0m                 \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"state precondition failed\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 161\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbyte\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mf\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mget_args\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    162\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mmax\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    163\u001b[0m             \u001b[0mtable\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_fnt_def\u001b[0;34m(self, k, c, s, d, a, l)\u001b[0m\n\u001b[1;32m    439\u001b[0m     \u001b[0;34m@\u001b[0m\u001b[0m_dispatch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m243\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmax\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m246\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'olen1'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u4'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u4'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u4'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u1'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'u1'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    440\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_fnt_def\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 441\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_fnt_def_real\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    442\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    443\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_fnt_def_real\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_fnt_def_real\u001b[0;34m(self, k, c, s, d, a, l)\u001b[0m\n\u001b[1;32m    444\u001b[0m         \u001b[0mn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    445\u001b[0m         \u001b[0mfontname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mn\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'ascii'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 446\u001b[0;31m         \u001b[0mtfm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_tfmfile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfontname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    447\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mtfm\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    448\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mFileNotFoundError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"missing font metrics file: %s\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mfontname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36m_fontfile\u001b[0;34m(cls, suffix, texname)\u001b[0m\n\u001b[1;32m   1054\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mlru_cache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1055\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_fontfile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msuffix\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtexname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1056\u001b[0;31m     \u001b[0mfilename\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfind_tex_file\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtexname\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0msuffix\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1057\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfilename\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1058\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/dviread.py\u001b[0m in \u001b[0;36mfind_tex_file\u001b[0;34m(filename, format)\u001b[0m\n\u001b[1;32m   1043\u001b[0m     \u001b[0mcmd\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1044\u001b[0m     \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1045\u001b[0;31m         \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcbook\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_and_log_subprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_log\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1046\u001b[0m     \u001b[0;32mexcept\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1047\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0;34m''\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/cbook/__init__.py\u001b[0m in \u001b[0;36m_check_and_log_subprocess\u001b[0;34m(command, logger, **kwargs)\u001b[0m\n\u001b[1;32m   2075\u001b[0m     \u001b[0mlogger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'%s'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_pformat_subprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2076\u001b[0m     proc = subprocess.run(\n\u001b[0;32m-> 2077\u001b[0;31m         command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, **kwargs)\n\u001b[0m\u001b[1;32m   2078\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mproc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreturncode\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2079\u001b[0m         raise RuntimeError(\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(input, timeout, check, *popenargs, **kwargs)\u001b[0m\n\u001b[1;32m    421\u001b[0m         \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'stdin'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPIPE\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    422\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 423\u001b[0;31m     \u001b[0;32mwith\u001b[0m \u001b[0mPopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mpopenargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mprocess\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    424\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    425\u001b[0m             \u001b[0mstdout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstderr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprocess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcommunicate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)\u001b[0m\n\u001b[1;32m    727\u001b[0m                                 \u001b[0mc2pread\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc2pwrite\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    728\u001b[0m                                 \u001b[0merrread\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrwrite\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 729\u001b[0;31m                                 restore_signals, start_new_session)\n\u001b[0m\u001b[1;32m    730\u001b[0m         \u001b[0;32mexcept\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    731\u001b[0m             \u001b[0;31m# Cleanup if the child failed starting.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36m_execute_child\u001b[0;34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session)\u001b[0m\n\u001b[1;32m   1362\u001b[0m                         \u001b[0;32mif\u001b[0m \u001b[0merrno_num\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0merrno\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mENOENT\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1363\u001b[0m                             \u001b[0merr_msg\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m': '\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mrepr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr_filename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1364\u001b[0;31m                     \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merrno_num\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_msg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_filename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1365\u001b[0m                 \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr_msg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1366\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'kpsewhich': 'kpsewhich'"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 324x180 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(4.5,2.5))\n",
    "plt.plot(range(5))\n",
    "plt.text(0.5, 3., \"serif\", family=\"serif\")\n",
    "plt.text(0.5, 2., \"monospace\", family=\"monospace\")\n",
    "plt.text(2.5, 2., \"sans-serif\", family=\"sans-serif\")\n",
    "plt.xlabel(u\"中文μ is not $\\\\mu$\")\n",
    "plt.tight_layout(.5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 一、简单示例\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fe453879fd0>]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()  # Create a figure containing a single axes.\n",
    "ax.plot([1, 2, 3, 4], [1, 4, 2, 3])  # Plot some data on the axes."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 二、 简单写法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fe467f8a668>]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot([1, 2, 3, 4], [1, 4, 2, 3])  # Matplotlib plot."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 三、图的构成\n",
    "![](anatomy.webp)\n",
    "\n",
    "## 四、图型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()  # an empty figure with no Axes\n",
    "fig, ax = plt.subplots()  # a figure with a single Axes\n",
    "fig, axs = plt.subplots(2, 2)  # a figure with a 2x2 grid of Axes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 五、图标函数的输入类型\n",
    "\n",
    "所有的图表函数接受`numpy.array`或者`numpy.ma.masked_array`作为输入。\n",
    "`array-like`的经典的`pandas`数据对象和`numpy.matrix`可能会或者不会正常工作。\n",
    "这将基于绘制之前是否能自动转换为`numpy.array`来决定。\n",
    "\n",
    "例如`pandas.DataFrame`转换\n",
    "\n",
    "~~~python\n",
    "a = pandas.DataFrame(np.random.rand(4,5), columns = list('abcde'))\n",
    "a_asarray = a.values\n",
    "~~~\n",
    "\n",
    "例如`numpy.matrix`转换\n",
    "\n",
    "~~~ python\n",
    "b = np.matrix([[1, 2], [3, 4]])\n",
    "b_asarray = np.asarray(b)\n",
    "~~~\n",
    "\n",
    "## 六、面向对象风格接口和pyplot接口\n",
    "\n",
    "\n",
    "两种方式建立Matplotlib:\n",
    "\n",
    "- 明确的建立图表和坐标可以使用面向对象风格\n",
    "- 依靠pyplot自动创建和管理图形和轴，并使用pyplot函数进行绘图。\n",
    "\n",
    "### 面向对象风格:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'np' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-1-a652ec488c58>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinspace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m100\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0;31m# Note that even in the OO-style, we use `.pyplot.figure` to create the figure.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0max\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msubplots\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m  \u001b[0;31m# Create a figure and an axes.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'线性'\u001b[0m\u001b[0;34m)\u001b[0m  \u001b[0;31m# Plot some data on the axes.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mNameError\u001b[0m: name 'np' is not defined"
     ]
    }
   ],
   "source": [
    "x = np.linspace(0, 2, 100)\n",
    "\n",
    "# Note that even in the OO-style, we use `.pyplot.figure` to create the figure.\n",
    "fig, ax = plt.subplots()  # Create a figure and an axes.\n",
    "ax.plot(x, x, label='线性')  # Plot some data on the axes.\n",
    "ax.plot(x, x**2, label='二次')  # Plot more data on the axes...\n",
    "ax.plot(x, x**3, label='三次')  # ... and some more.\n",
    "ax.set_xlabel('x 轴')  # Add an x-label to the axes.\n",
    "ax.set_ylabel('y 轴')  # Add a y-label to the axes.\n",
    "ax.set_title(\"示例图表\")  # Add a title to the axes.\n",
    "ax.legend()  # Add a legend."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### pyplot风格:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fe467f54f98>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "ename": "RuntimeError",
     "evalue": "latex was not able to process the following string:\nb'\\\\u793a\\\\u4f8b\\\\u56fe\\\\u8868'\n\nHere is the full report generated by latex:\nThis is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020) (preloaded format=latex)\n restricted \\write18 enabled.\nentering extended mode\n(/home/tlw/.cache/matplotlib/tex.cache/2de2b5125e3296aab4003136f0360dfb.tex\nLaTeX2e <2020-02-02> patch level 5\nL3 programming layer <2020-03-06>\n(/usr/local/texlive/2020/texmf-dist/tex/latex/base/article.cls\nDocument Class: article 2019/12/20 v1.4l Standard LaTeX document class\n(/usr/local/texlive/2020/texmf-dist/tex/latex/base/size10.clo))\n(/usr/local/texlive/2020/texmf-dist/tex/latex/type1cm/type1cm.sty)\n(/usr/local/texlive/2020/texmf-dist/tex/latex/cm-super/type1ec.sty\n(/usr/local/texlive/2020/texmf-dist/tex/latex/base/t1cmr.fd))\n(/usr/local/texlive/2020/texmf-dist/tex/latex/base/textcomp.sty)\n(/usr/local/texlive/2020/texmf-dist/tex/latex/base/inputenc.sty)\n(/usr/local/texlive/2020/texmf-dist/tex/latex/geometry/geometry.sty\n(/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty)\n(/usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifvtex.sty\n(/usr/local/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty))\n\nPackage geometry Warning: Over-specification in `h'-direction.\n    `width' (5058.9pt) is ignored.\n\n\nPackage geometry Warning: Over-specification in `v'-direction.\n    `height' (5058.9pt) is ignored.\n\n) (/usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-dvips.def)\n(./2de2b5125e3296aab4003136f0360dfb.aux)\n*geometry* driver: auto-detecting\n*geometry* detected driver: dvips\n\n! Package inputenc Error: Unicode character 示 (U+793A)\n(inputenc)                not set up for use with LaTeX.\n\nSee the inputenc package documentation for explanation.\nType  H <return>  for immediate help.\n ...                                              \n                                                  \nl.14 \\fontsize{12.000000}{15.000000}{\\sffamily 示\n                                                  例图表}\nNo pages of output.\nTranscript written on 2de2b5125e3296aab4003136f0360dfb.log.\n\n\n",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mCalledProcessError\u001b[0m                        Traceback (most recent call last)",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/texmanager.py\u001b[0m in \u001b[0;36m_run_checked_subprocess\u001b[0;34m(self, command, tex)\u001b[0m\n\u001b[1;32m    304\u001b[0m                                              \u001b[0mcwd\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtexcache\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 305\u001b[0;31m                                              stderr=subprocess.STDOUT)\n\u001b[0m\u001b[1;32m    306\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mFileNotFoundError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36mcheck_output\u001b[0;34m(timeout, *popenargs, **kwargs)\u001b[0m\n\u001b[1;32m    355\u001b[0m     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,\n\u001b[0;32m--> 356\u001b[0;31m                **kwargs).stdout\n\u001b[0m\u001b[1;32m    357\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/lib64/python3.6/subprocess.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(input, timeout, check, *popenargs, **kwargs)\u001b[0m\n\u001b[1;32m    437\u001b[0m             raise CalledProcessError(retcode, process.args,\n\u001b[0;32m--> 438\u001b[0;31m                                      output=stdout, stderr=stderr)\n\u001b[0m\u001b[1;32m    439\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mCompletedProcess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprocess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mretcode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstdout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstderr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mCalledProcessError\u001b[0m: Command '['latex', '-interaction=nonstopmode', '--halt-on-error', '/home/tlw/.cache/matplotlib/tex.cache/2de2b5125e3296aab4003136f0360dfb.tex']' returned non-zero exit status 1.",
      "\nThe above exception was the direct cause of the following exception:\n",
      "\u001b[0;31mRuntimeError\u001b[0m                              Traceback (most recent call last)",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/IPython/core/formatters.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, obj)\u001b[0m\n\u001b[1;32m    339\u001b[0m                 \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    340\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 341\u001b[0;31m                 \u001b[0;32mreturn\u001b[0m \u001b[0mprinter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    342\u001b[0m             \u001b[0;31m# Finally look for special method names\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    343\u001b[0m             \u001b[0mmethod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_real_method\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_method\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/IPython/core/pylabtools.py\u001b[0m in \u001b[0;36m<lambda>\u001b[0;34m(fig)\u001b[0m\n\u001b[1;32m    246\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    247\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0;34m'png'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mformats\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 248\u001b[0;31m         \u001b[0mpng_formatter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfor_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mFigure\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mprint_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'png'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    249\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0;34m'retina'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mformats\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;34m'png2x'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mformats\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    250\u001b[0m         \u001b[0mpng_formatter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfor_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mFigure\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mretina_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/IPython/core/pylabtools.py\u001b[0m in \u001b[0;36mprint_figure\u001b[0;34m(fig, fmt, bbox_inches, **kwargs)\u001b[0m\n\u001b[1;32m    130\u001b[0m         \u001b[0mFigureCanvasBase\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    131\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 132\u001b[0;31m     \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbytes_io\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    133\u001b[0m     \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbytes_io\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetvalue\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    134\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mfmt\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'svg'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/backend_bases.py\u001b[0m in \u001b[0;36mprint_figure\u001b[0;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, **kwargs)\u001b[0m\n\u001b[1;32m   2077\u001b[0m                             print_method, dpi=dpi, orientation=orientation),\n\u001b[1;32m   2078\u001b[0m                         draw_disabled=True)\n\u001b[0;32m-> 2079\u001b[0;31m                     \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2080\u001b[0m                     \u001b[0mbbox_artists\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"bbox_extra_artists\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2081\u001b[0m                     bbox_inches = self.figure.get_tightbbox(renderer,\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mdraw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m     36\u001b[0m                 \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstart_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     37\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 38\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     39\u001b[0m         \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     40\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0martist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_agg_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/figure.py\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m   1734\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpatch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1735\u001b[0m             mimage._draw_list_compositing_images(\n\u001b[0;32m-> 1736\u001b[0;31m                 renderer, self, artists, self.suppressComposite)\n\u001b[0m\u001b[1;32m   1737\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1738\u001b[0m             \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose_group\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'figure'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/image.py\u001b[0m in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[1;32m    135\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mnot_composite\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhas_images\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    136\u001b[0m         \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0martists\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 137\u001b[0;31m             \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    138\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    139\u001b[0m         \u001b[0;31m# Composite any adjacent images together\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mdraw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m     36\u001b[0m                 \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstart_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     37\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 38\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     39\u001b[0m         \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     40\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0martist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_agg_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, renderer, inframe)\u001b[0m\n\u001b[1;32m   2588\u001b[0m                 \u001b[0martists\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mremove\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mspine\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2589\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2590\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_title_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2591\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2592\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxison\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0minframe\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_update_title_position\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m   2536\u001b[0m                 \u001b[0;32mif\u001b[0m \u001b[0mbb\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2537\u001b[0m                     \u001b[0mtop\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtop\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mymax\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2538\u001b[0;31m             \u001b[0;32mif\u001b[0m \u001b[0mtitle\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_window_extent\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mymin\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0mtop\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2539\u001b[0m                 \u001b[0m_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransAxes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minverted\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtop\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2540\u001b[0m                 \u001b[0mtitle\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/text.py\u001b[0m in \u001b[0;36mget_window_extent\u001b[0;34m(self, renderer, dpi)\u001b[0m\n\u001b[1;32m    903\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Cannot get window extent w/o renderer'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    904\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 905\u001b[0;31m         \u001b[0mbbox\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minfo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdescent\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_layout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_renderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    906\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_unitless_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    907\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_transform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/text.py\u001b[0m in \u001b[0;36m_get_layout\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m    298\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mclean_line\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    299\u001b[0m                 w, h, d = renderer.get_text_width_height_descent(\n\u001b[0;32m--> 300\u001b[0;31m                     clean_line, self._fontproperties, ismath=ismath)\n\u001b[0m\u001b[1;32m    301\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    302\u001b[0m                 \u001b[0mw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0md\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/backends/backend_agg.py\u001b[0m in \u001b[0;36mget_text_width_height_descent\u001b[0;34m(self, s, prop, ismath)\u001b[0m\n\u001b[1;32m    202\u001b[0m             \u001b[0mfontsize\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_size_in_points\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    203\u001b[0m             w, h, d = texmanager.get_text_width_height_descent(\n\u001b[0;32m--> 204\u001b[0;31m                 s, fontsize, renderer=self)\n\u001b[0m\u001b[1;32m    205\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mw\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    206\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/texmanager.py\u001b[0m in \u001b[0;36mget_text_width_height_descent\u001b[0;34m(self, tex, fontsize, renderer)\u001b[0m\n\u001b[1;32m    448\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    449\u001b[0m             \u001b[0;31m# use dviread. It sometimes returns a wrong descent.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 450\u001b[0;31m             \u001b[0mdvifile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmake_dvi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfontsize\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    451\u001b[0m             \u001b[0;32mwith\u001b[0m \u001b[0mdviread\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDvi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdvifile\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m72\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mdpi_fraction\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mdvi\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    452\u001b[0m                 \u001b[0mpage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdvi\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/texmanager.py\u001b[0m in \u001b[0;36mmake_dvi\u001b[0;34m(self, tex, fontsize)\u001b[0m\n\u001b[1;32m    337\u001b[0m                 self._run_checked_subprocess(\n\u001b[1;32m    338\u001b[0m                     [\"latex\", \"-interaction=nonstopmode\", \"--halt-on-error\",\n\u001b[0;32m--> 339\u001b[0;31m                      texfile], tex)\n\u001b[0m\u001b[1;32m    340\u001b[0m             \u001b[0;32mfor\u001b[0m \u001b[0mfname\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mglob\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mglob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbasefile\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m'*'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    341\u001b[0m                 \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mfname\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mendswith\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'dvi'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'tex'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/github/matplot-learn/venv/lib64/python3.6/site-packages/matplotlib/texmanager.py\u001b[0m in \u001b[0;36m_run_checked_subprocess\u001b[0;34m(self, command, tex)\u001b[0m\n\u001b[1;32m    316\u001b[0m                     \u001b[0mprog\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcommand\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    317\u001b[0m                     \u001b[0mtex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mencode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'unicode_escape'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 318\u001b[0;31m                     exc=exc.output.decode('utf-8'))) from exc\n\u001b[0m\u001b[1;32m    319\u001b[0m         \u001b[0m_log\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreport\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    320\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mreport\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mRuntimeError\u001b[0m: latex was not able to process the following string:\nb'\\\\u793a\\\\u4f8b\\\\u56fe\\\\u8868'\n\nHere is the full report generated by latex:\nThis is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020) (preloaded format=latex)\n restricted \\write18 enabled.\nentering extended mode\n(/home/tlw/.cache/matplotlib/tex.cache/2de2b5125e3296aab4003136f0360dfb.tex\nLaTeX2e <2020-02-02> patch level 5\nL3 programming layer <2020-03-06>\n(/usr/local/texlive/2020/texmf-dist/tex/latex/base/article.cls\nDocument Class: article 2019/12/20 v1.4l Standard LaTeX document class\n(/usr/local/texlive/2020/texmf-dist/tex/latex/base/size10.clo))\n(/usr/local/texlive/2020/texmf-dist/tex/latex/type1cm/type1cm.sty)\n(/usr/local/texlive/2020/texmf-dist/tex/latex/cm-super/type1ec.sty\n(/usr/local/texlive/2020/texmf-dist/tex/latex/base/t1cmr.fd))\n(/usr/local/texlive/2020/texmf-dist/tex/latex/base/textcomp.sty)\n(/usr/local/texlive/2020/texmf-dist/tex/latex/base/inputenc.sty)\n(/usr/local/texlive/2020/texmf-dist/tex/latex/geometry/geometry.sty\n(/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty)\n(/usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifvtex.sty\n(/usr/local/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty))\n\nPackage geometry Warning: Over-specification in `h'-direction.\n    `width' (5058.9pt) is ignored.\n\n\nPackage geometry Warning: Over-specification in `v'-direction.\n    `height' (5058.9pt) is ignored.\n\n) (/usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-dvips.def)\n(./2de2b5125e3296aab4003136f0360dfb.aux)\n*geometry* driver: auto-detecting\n*geometry* detected driver: dvips\n\n! Package inputenc Error: Unicode character 示 (U+793A)\n(inputenc)                not set up for use with LaTeX.\n\nSee the inputenc package documentation for explanation.\nType  H <return>  for immediate help.\n ...                                              \n                                                  \nl.14 \\fontsize{12.000000}{15.000000}{\\sffamily 示\n                                                  例图表}\nNo pages of output.\nTranscript written on 2de2b5125e3296aab4003136f0360dfb.log.\n\n\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(0, 2, 100)\n",
    "\n",
    "plt.plot(x, x, label='线性')  # Plot some data on the (implicit) axes.\n",
    "plt.plot(x, x**2, label='二次')  # etc.\n",
    "plt.plot(x, x**3, label='三次')\n",
    "plt.xlabel('x 轴标注')\n",
    "plt.ylabel('y 轴标注')\n",
    "plt.title(\"示例图表\")\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 七、图表函数\n",
    "\n",
    "某些情况需要一遍一遍的调用相同的图表，只是数据不同。\n",
    "此时可以封装图表为函数如下: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fe467fc0e80>]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAD3CAYAAAAE2w/rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOydd3hU1daH3+mTMpPeC6kkBAiETuhVVFSKoqigXDv2fq9eu17LtX4ocO29oIioKAoiNXRCKCEhvffeZjLlfH/MZMiQQktIAud9njzT5+xMMr+9z9pr/ZZEEARERERERPoe0p4egIiIiIjI2SEKuIiIiEgfRRRwERERkT6KKOAiIiIifRRRwEVERET6KKKAi4iIiPRR5OfzYJ6enkJISMj5PKSIiIhIn2f//v3lgiB4nXz/eRXwkJAQ9u3bdz4PKSIiItLnkUgkOe3dL4ZQRERERPooooCLiIiI9FFEARcRERHpo4gCLiIiItJHEQVcRETkgmHllgwSMsrt7kvIKGflloweGlH3Igq4iIjIBUNsoAv3fJ1oE/GEjHLu+TqR2ECXHh5Z93Be0whFREREupP4cE/eXDCEO77Yz83xIXy1O5d3r48jPtyzp4fWLYgrcBERkQsCQRBYf6SYp9YeoU5nZNmmdG4cHXzBijeIK3AREZELgLSSOp77JZnt6ZbQiVoh5fYJYXy5O5cx4R4XrIiLAi4iItJnqWky8PbG43y+MweT2dJdTCmT8tHikYyL9GRMuAf3fJ14wYZRxBCKiIhIn8NkFvhmTy5TXt/MpwnZRHo7AxDo5sD7i4czLtIi1vHhnrx7fRyH8mt6crjdhrgCFxER6VPsy67kmZ+PcrSwlpEhbtwcP4h//3SYUE8nfrwrHjcnpd3z48M9L8jVN4gCLiIi0kcortHxyu/H+OlgIb5aNf+3MI5x4R7MX5GARCLh0yUj24j3hc45CbhEInEFwqw/IwVBeLxLRiUiIiJiRWcw8dH2LN77Ox2jWeDeqRHcNTkcqUTCDR/upqhGx9e3jaGfh1NPD/W8c64r8AUAgiC8L5FIRkokktsFQXi/C8YlIiJykSMIAhuPlfLCr8nkVjZyyUAfnrwshmAPR8xmgXu/SeRAbhXLrx/G8H5uPT3cHuGcBPwksQ4DNpzbcEREREQgvdSSFrgtrZxIb2e+vGU04yNPxLFf/SOFdYeLePKyAVw62K8HR9qzdEkMXCKRhAGVgiBsbOex24HbAYKDg7vicCIiIhcotToD72xM47OEbByUMp6eHcOisf1QyE4kzH25K4f/bclk0Zh+3DohtAdH2/N01Sbm1YIg3NHeA9ZV+vsAI0aMELroeCIiIhcQZrPA9/vzeG19KpWNzVw3MohHZkbh4ayye97fKaU8vfYIU6O9eeaKGCQSSQ+NuHdwzgIukUiuFgThNev1YYIgHDj3YYmIiFws7M+p4rlfjnIov4bh/dz49IpRDG7HfOpIQQ13f32AGH8tyxbGIZeJZSznmoUyHXhVIpH8y3qXmIUiIiJyWpTU6nj19xR+TCzAR6vineuGcuUQ/3ZX1YXVTfzj0724Oij4+KaROKnEDGg4903MjUB4F41FRETkIkBvNPHx9myWbUrDaBJYOjmcu6dEdCjKtToDSz7ZS1OziR/uisdbqz7PI+69iNOYSJ9m5ZYMYgNd7CrtEjLKOZRfw52TxLVFb0IQBDalWNICsysamT7Ah6dmD+g0f9tgMnP3VwfIKKvns3+MIspXcx5H3PsRg0gifZqLzcC/r5JRVs/Nn+zlls/2IZNK+Pwfo/jwphGdircgCDy55jDb0sp5ed5gxkVcmOXw54K4Ahfp08SHe/L6NbEs+WQvA/21pBTXccv4UBQyKbkVjXhrVagVsp4e5kVLnc7A//2Vxic7snFQyPj35QO4KT7ELi2wI977O51V+/K5b1ok14wIOg+j7XuIAo54Gt7XGRzgigQ4kFsNwLJN6SzblG573NVRgY9GjbdWha9WjY9WjY9WZb1U4+uixsNJKWY1dCFms8APB/J5bX0qFQ16FgwP4tFZUXielBbYET8lFvD6n8eZFxfAg9Mju3m0fRdRwDlxGt7iGdxyGv7u9XE9PTSR0yCttA61UoafqwNZ5Q24OSp4aGYUarmUklodJbV666WOtJJ6yur1Nu/oFqQS8HRW4euixltjEfgWsffWWu730ahxdVRc9LnHpyIxt4pnf0kmKa+aYcGufHzzCGIDXU/79bsyK3jsh0OMCXPnlfmx4ufdCRJBOH+1NSNGjBD27dt33o53JiRklHP75/uJ9tWQXlrP8huHXbAWlBcSrSfbsWEevLo+lf9tyUApl/LU7BhuGB3cRgBMZoGKej0ltXqKrcJeWquzXj8h9lWNhjbHU8qlltW7Rm1bwbdezbdcvxjT3Eprdby6PpXVB/Lx1qj456XRzBkagFR6+gKcXlrP/BUJeGlUrL4zHhdHRTeOuO8gkUj2C4Iwos39ooCfYOH7u9iZWYFUAtePDuaOieEEuTv29LBEOqG98NcvSYW88Wcq2RWNTIj05NX5sfi7Opzxe+sMJsrq9G1W8a1vF9fqaGw2tXmtRiXH2yrmvlo13lo1vtbb3tawjZezCqW8bdimr4X0mo1mPtmRxf/9lYbBJHDLhFDunhKB8xlOYmV1euYu34HOYGLN0nHid68VooCfgpaV3CB/LVvTLBkNMqmEq4b6s3RyBBHWjh8ifQNBEPh6Ty4vrTuGTCLh6StiuHp4YLecjtfrjRTXtL+KbxH70jodBlPb75qHk7LNKr5eb+S7vXk8cVk084cHsj+nqte2Bfs7pZTnf00mq7yBadHe/Ht2DKGeZ27r2tRs4roPdpFaXMt3t49lSNDph1wuBkQB74TWp+Hx4Z78b0sGr/yeQssnI5HArIG+3D0lgkEBYnpaXyK3opFHfkhiT1Yl0wd48595g/HWnP9CELNZoKqx+SRxt4RwSmt1lNTpKK7RU9Ggp/VXMtzLiapGQ68T78yyel74NZm/U8sI83Li6dkxTI7yPqv3MpkFln61nz+TS/jfjcOZOdC3i0fb9xEFvBPaO2VdvT+Pl347RmWDAU9nFXqDiTq9kclRXtwzJYIRIe49OGKRM8FsFvgkIZvX1qfgoJTxwlWDuGKIf08Pq10MJjPl9XqKa3Tc920ieZVN3Dc1godmRvX00ADL2cayTWl8vD0LlVzG/dMiuSk+pN1Q0Onywq/JfLQ9i2euiGHJuIvbXbAjRAE/C2p1Bu79OpEtx8uYGxdAiIcTn+3MprKhmVGh7twzJYIJkZ7iLnkfIb20noe/TyIpr5rLY/144apBuPfSFlwJGeXc8uk+mgwm3BwVvHdDz26qm80CPyYW8Or6FMrq9FwzPJBHZ0Wd89nMpzuyePaXZP4xLpSnr4jpotFeeHQk4GLiaydo1Qo+vnkkt00IZU1iAbuzKvj13vE8PTuG3IpGFn+8h6ve28EfR4sxm0Wn3N5OhLczq+8cy6OXRPHn0WJmvrWVDcklPT2sNrSE9O6cFAbAIzOj7KpNzzdJedXMW5HAI98nEeDqwE93j+O/1ww5Z/H+82gxz/2azMwYH568fEAXjfbiQlyBnyY/7M/niR8P4+eq5sPFIwj2cOTHAwWs2JxBbmUj/X2cWTo5gtmxfmJBSB/gWFEtD61K4lhRLfOHBfL0FTG4OPSOlLWWkJ6Xs4oZb23lrWuH4KNVn/cslLI6Pa+tT+H7/fl4aVT8c1Y0c+POLC2wI5Lyqrn2/Z1E+Wj49vaxOCjFatnOEEMoXcD+nCru+GI/OoOJd64byrQBPhhNZtYdLuK9v9M5XlJPsLsjd04KZ/7wAFRy8Z+yN9NsNLNsUxrLN2fgrVHx6vxYJvb36ulh2Wg2mhnw9HrumhTOI5ecvxh4s9HMZwnZ/N9faeiMJv4xLpR7pkagUXfNBJdX2cjc5QmoFVLWLB2Hl+b0qjMvZkQB7yIKq5u4/Yt9HC2s5bFLorlzUhgSiQSzWWDjsRLe+zudpPwafLVqbpsYxsJRQTgqL76ijr5EUl41D3+fRHppPTeMDuaJywb0mkKcqW9spr+3hpWLhp+X421OtaQFZpY1MCXKi6dmxxDm1XUptDWNBuavTKC0VsePS+OJ8BbdBU8HUcC7kKZmE4/8kMS6Q0XMjQvg5XmDbYZJgiCwPb2cdzelszurEncnJf8YF8KisSG95hRdpC06g4k3Nxzng22ZBLo58N+rhzAmzKOnh8Vtn+8jq7yBjQ9N6tbjZJc38OK6ZDYeKyXU04mnZg9garRPlx6j2Whm8ce72Z9TxRe3jO4Vn29fQRTwLkYQBN7dlM4bG44zJMiVDxYNb2M0vy+7knf/TmdzahkalZzF8f34x7jQNn3+RHoPe7MreeT7JHIrG1kSH8pjs6J61M3w1fUpfLgtk+TnZ52Wg9+ZUq838u6mdD7enoVCJuG+aZEsGRd6TmmB7SEIAg+vSuLHxALevnYoc+ICuvT9L3REAe8m1h8p5qFVB9Go5XywuH3TniMFNSzfnM7vR4pRyaUsHBXM7RPD8HM58/Juke6nsdnIK7+n8PnOHMK8nHjjmiHEBbv1yFhW78/n4e+T+OvhSYR3YShDEAR+OljAv9ccoaHZxPxhgTw+Kwpvrbpbyvbf2nCcd/5K4+EZ/bl3mugueKaIaYTdxKxBvqy+Kx65VMo1K3ey9mBBm+cMCnBh+Q3D2fDgRC4f7M/nO3OY+Nrf/OvHQ+RUNPTAqEU6w1Ep5/mrBvHVraPRNZuYvyKB19anoDe29TzpbsKtFg7ppfVd9p6H8quZvyKBB79LwlerRquWMynKC1dHZbc0xPh+Xx7v/JXGghGB3DM1osveV0RcgXcZFfV67vryAHuyK7l7SjgPz4jqMN0qr7KR/23NYNW+fIwmM1cMsfitiO2ieh+1OgMv/prMqn35RPtqeGPBEAb6nz87hTqdgcHP/sljs6JYOvncxK+8Xs9/16eyan8eHk5KHpsVzaT+Xjz2QxJbjpczIdKTo4W1XVq2vyO9nJs+3sOYMA8+WTKyW8JAFwNiCOU80Gw088zPR/hmTx7TB/jw9nVDO3VkK63V8eH2LL7clUNjs4mZMT7cPSVCNPLphWxKKeHx1YepamjmvmmR3DU5/LyJ0Zj//EV8hAdvLhh6Vq83mCxpge9sTKPJYGLJuBDumBTOqn15vLcpnYZWbopdWbafWlzH1SsS8Hd14Pu7xqLtojTEixFRwM8TgiDwWUI2L6w7RoSXMx/eNOKUtphVDc18kpDNpzuyqNUZmRDpyd1TIhgd6i6W6fciqhqaeebno/ycVEhsoAtvXDOESJ/uP2u64cNd1OuMrL1n/Bm/duvxMp7/NZn00nom9bekBaaX1vHSb8fIq2xiRowP5XV6EvOqWTo5nG/35nXJCry0Vsfc5QkYTGbW3D2OgLOw8xU5gSjg55ntaeXc/fUBpBJYfsNwxoafOmWqTmfgq925fLgtk/L6Zkb0c+PuKRFMjvIShbwX8dvhIv790xHq9UYemdmfW8aHIeuC6sSOeGbtEVYfKODwszNP+/8gt6KRF9YlsyG5hH4ejjw9OwY/Fwee//UouzIrifLR8PQVMUgkcOOHuxkU4MLP94xv48x5NjTojVz7/k4yyxpYdcdY0cGzCxA3Mc8z4yM9+enucbg7KVn00W6+3JVzytdo1ArunBTO9sen8tyVAymsbmLJp3uZvWw7vx0uatMGTKRnuGywH388MJHJ/b34z28pXPu/nWSXd99mdIS3M/V6IyW1+lM+t0Fv5L9/pDD9zS3sSC/n8VnRfHv7GDYeK2X2sm2kFtfxwpxBrLtvPOMiPNl6vAyzAFcNtaT1xYd78u71cRzKrzmrsRpNZu77JpHkwlreu36YKN7djCjg3UiopxNr7h7HhEhP/v3TEZ766QgGk/mUr1MrZNwUH8LmR6fw2tWxNDabWPrVAWa+tYUf9uef1nuIdC9eGhX/WzSct64dQmpJHZe+s43Pd2Z3i6lZS/pgZ5kogiCw9mABU9/YzHt/ZzA71o8/H5yIQiZh5ltb+X5fnuV/6pEpLBrTz+bX0xLem9TKQiA+3POsUggFQeC5X5L5K6WU568axJTos/MHFzl9RAHvZrRqBR/eNJI7Jobxxa4cFn+0h6qG5tN6rVIuZcGIIDY+NIllC+NQyKQ88n0SU17fzBe7ctAZzn9a2/lm5ZaMNi58CRnlrNyS0UMjOoFEImFuXCAbHpzEqFB3nl57lBs/2k1+VWOXHifClkpY1+7jRwpquGblTu7/9iDeGjWr74rn8lg/Fn+0hxfXHWN4PzfWPzCRZ64YyDd7c+0+zy2pZXg6KdmQXHzO4/xoexZf7Mrhjolh3Dim3zm/n8ipEQX8PCCTSvjXZQN445oh7M+p4qr3dnC8pP0vY0evv2KIP7/fP4GPbhqBl0bFUz8dYcJrf/P+1gwa9MZuHH3PEhvoYmel2h15yueKr4uaT5eM5OV5g0nKq2bW29tYtTePrtpf8tKo0KjlZJTZh2kq6vX868dDXPHudrLKG3h1/mBev2YIb288zi2f7QMJfLJkJJ8uGWWbBFp/ngaTma1pZdTpjeec+fT74SJe+u0Ylw325fFZ0ef0XiKnj7iJeZ45kGtxNGxqPuFoeKYIgsDOjAre25zOjvQKXB0VLIkP5eb4kAuyi/e2tDJu/WwfEd7OZFc08PK8WK7spR118iobefSHJHZlVjIlyotX5sfioz33Fm5z3tuBg0LGN7ePwWAy88XOHN7aeJymZhM3xYdwc3yIbQXspJTxwPT+LBrbr91Ux4SMcu74fD/xER78cbSEB6dHcv/0/mc9tv05VVz/wS4G+mv5+rYxPWo9cKEiZqH0Iopqmrj98/0cKayxczQ8Gw7kVrH873Q2HivFSSnjxrH9uHV82AVl0bl8czqvrU+1uy/A1YHRoe6MDnNnVKgHIR6OvSZTx2wW+GxnNq+uT0EllzGpvyfXjQwmPuLsusy3hJGOFdXx1oKhPPfLUdJK6wnxcGTlouHszqzkrY3HqW0ycP3oYB6aEdVhpyGjycwLvybz2U7LproESHp25lnnaOdUNDB3eQJatZwfl47rtR2O+jqigPcymppNPLb6EL8kFTJnqD+vzI89p5XLsaJalm/OYN2hQhQyKdeNDOL2SeF9Pv82vbSeWW9vRSKBOyaG8/nObObEBVBWp2dPViUV1v0EL42KUaHujAm1CHqkt3OXNB44FzLLLC3cEnOrUcgkLFsYx6xBfmecqpeQUc6ST/aiN1o2r701KhqbTdwzNYLV+/NJK61nXIQHT82OIdpX2+H71OoM3PN1IluPl9nuk0slfH7LqA7H0V6/2JbJ59oRQcxfkUBVYzM/Lh13Vt3oLxQ6+5y6wlNGFPBeiCAIvPd3Oq//eZwhgS68v3jEOZ9uZ5U3sGJzOj8esHiyzI0L4K7J4V3q6Xy+MJkFZr29hfTSBt67IY7LBvvbid/YMA8yyurZnVXJnqxKdmdWUlyrA8DVUcHIEHfLKj3UgwF+mh7plGQyC7y/NZP//pGCWYAR/dzILG84bfFubDayYnMGyzalAyCVgEYtJ8zTmcS8avp5OPLkZQOYEePT6RlITkUDt3y2j8wySyZLS7LMghGBbDxW2uF4Tp5sWm6/uWCIzfv+61tHX/RNvm2f08I4Roa6sze78pzz6VsjCngv5s+jxTzwncXR8P1FI7qklL6guokPtmbyzZ5cDCYzlw324+4pEQzw63iF1tv4eHsWz/+azF2Tw+02xjpa2QiCQF5lE7uzKtiTVcme7EpyKiwZIc4qOcP7uTE6zCLqgwNcu9wytSMKqpu4/P+2Ud1osN2358lpnfaUFASBXw4V8cC3ibSXmeisknPP1AiWjAs5ZeenPVmV3PHFPgTg0kF+bEguprzecubyyz3jqdMbOl0pJmSUc9vn+5gXF8C6w8Usuy6Ob/fl8UtSIcsWxnFFL92POB8IgkB2RSM7Myr45VAhuzIqUMqlOCplXdqIutsEXCKRXA3cIQjCjFM9VxTwjkkpruXWz/ZRWqfnv1fH2gorzpWyOj0fWf1W6vVGpkV7c/fUCIYFu7U57Vu5JQOZFExmbF/m7rAWPR1yKxq55O2tjA5z55ObR551fLuopski5tafNGsutVohJS7IjVHWOHpckFu39GX89VAhT/x4mGajGalUQmMr35FHZvbnnqltrVV3Z1Zw7fu7On3f16+J5erhQac8/vf78nhizWGC3B35+KaRmAWBqW9sAcDDScneJ6efMtR0OL+GK97dDli8UoxmgeWbM3h8VjR3TT6//xe9gbzKRnZmVrAzw/LTctYHljMks9C1njLQzStwiUSyQRTwc6eiXs9dXx1gT1Yld00O59GZHTsanik1jQY+25nNxzuyqG40EB/uweQoL1ZuybSd5n2wLYP/rEvhicujuW1CeJeUVZ8JLRPK2DAPbvhwN4fya3h53mAKqpu6bAKpqNezN7vSFnZJLqpFEEAhkxAb6GoR9FB3hvdzO6cekPV6I8+sPcrqA/lEeDtRVtfMihstK7LHfkhi1b5823MTn5qBk0rOT4kFPLb6kN37jApx52BeNc2tirckWGoEPlkyssO/i9ks8OofKfxvSybjIzx57/phuDgq+HRHFs/+kgzAnKH+vH1d3Cl/l7nv7SAxr5pbxofw7Z48GppNXD86mJfmDOo1G8fdSVFNk02sd2ZWkF/VBFgmwGg/DXuzqmg2mQn3dKK8oZmbxvbjy925Xfq9EQW8j9BsNPPsL0f5encu0wd489a1Q7usmSxYSq2/2ZPL+1szKa3TE+7lRH5VE45KGbU6I/4uKvKqTqwoPJwUeDqr0ajlaB0UaNVyNGoFWgfLpabl9kmXSrkUmVSCXCqxu+zsC98yYcwbFsCH27K4ZXwIaxILu3UCqWkysD/nhKAfzq/BaBaQSmCgvwujQt0tPyHuuLXKsOhs02p0qDv3f3uQ/KpG7pkSgUohIy7Y1e65vx0uZOlXiR2O66W5g9h2vJz1R4vRquXcPC6E9NJ6kgtrmTXIj5VbMrhuZBCvzI9tM54GvZEHvjvIhuQShgW78t0dY23phEs+2cPfqZZNzDcXDGHesMBOP58vdmbz1NqjxId7cMekcJZ8sgeZVMLHN49kQmTvaQDdlZTV6W0r7F2ZFWRZbRJcHRWMDnUnPtyTseEeZJc38MSaI9Q0NTM3LoANySW2sElXL356TMAlEsntwO0AwcHBw3NyTu0JcrEjCAJf7MrhuV+SCfdy4sPFIwn26NzR8EzRGUz8sD+flVsybCsKgGhfDSnFp19kdD6QSCy2BBq1AmeVDLlUemJikEmQWW/LbbclyKXtTSDSVo+fdL/1drPJzKH8Gg7kVJHaTrHVQH8t8eEe1DYZWXuwgCcuH8DoUA9Simp5+uejjApxZ8OxEjQqOcuuj2NMmEebySutpI41iQWsPVhIQXWT3ft/umQke7Iq+XB7FjKJhKWTw7ltYhhqhYw3/0zl3b/TOfjMTOa8u4Nmk5k/HpjIF7tykElhxeZMnrtyIMs3Z3CsqBaFTMJn/ziRYaIzmIh7fgNN1grevU9OP2W66dTXN5NZ3sCLcwbxyu8pBLk78ugl/TleUn/ew2rdRVVDM7syK2yi3RJm06jkjA5zZ0yYB2PDPRjgq0UqlVDTZOD5X5JZfcDiEf/mgqFsTSvru1ko4gq8e9iRXs7Srw4gkcDyLtwQac22tDLu/HI/Dfq2ZfkatZx/zoomxl9Ls9FMnc5Ind5AbZOR2iYDdXojdTrrbZ2BOt2JyzqdAZ1B9Gw5F7w0KgJcHWwTwO6sSgAC3RxobDZRaU2hHB/hyZ7sSlzUcsqsm5MSsIXCWtieVs6NH+0GLBPRuvsmdHr8xNwq5i5PwNNZhVwqQSKBNUvH4ety7oVJPUlNk4E9WZW2kMixoloAHJUyRoa4Mzbcg7FhHgz017bJXNp6vIzHVx+itE7P0snh3Ds18rxshnck4B13GxDpccZFePLzPeO45bN9LP5oD89cOZBFXegxkZBRzv3fHuSDxSMYFeJOxJO/2z2uazbx+p+pXbqbfjKCINBsMtPUbKKx2URCejnP/5rM9Bgf/jhSzJgwDwprdLYv2amQSMDdUUmTwWS3YXg+GeCnZXg/V9wdlfx6uIjMss6dCoPcHcirbGpzf4SXMwq5FJPZjNEk4KCQ0WQwkV/VxAA/rU3At6dbbAZaxBtgTlyAnXgDbE07kf/d2ryqI97emAZYOvk4q+R8f+fYPine9Xoje7Mr2ZVRQUJGBUcLazALoJJLGRHixiMz+zM23IPYQNcOm3Q06I3857djfLU7l3AvJ1bfFc/QXtB45ZwFXCKRTAdGSCSSqwVB+KELxiTSin4eTqxZGs/93x7kqZ+OkFJUy7NXDuySbjCH8mvsYnT3T4vkE2tTCQCDWaCq0cD7WzIZHODSpbH4FiQSCSq5DJVcRnJROf/5PYWVi4Zb4ojD28YRTWaBnIoGUovrOFZcR0pRLakldbZ0QUHAVtyjUctRK2QoZVIUMgnl9c3Un6VvjEYlxywIdt1rOuJYUW27E46zSm47vp+LmgemR7L2YCEJGRX4aFX889JohgS62rJEdmZW2KXpNTWbiHlmPYvH9CPE04kvd+W08UcBCPdyYsvxMhIyyu0m3i2pJwR84ikEfH9OFVtaFfwsv2FYn0lBbWo2sT+nioSMcnZmVnAovwaTWUApkzI02JV7p0YyNtyDuGDXU6ZgAuzKrODRH5LIr2ritgmhPDwzqtfYBYh54H0Ek1ngNWtWwZgwd5bfMLxbypYP59cwf0UCgW4OZLbyuNaq5dwcH8KScaF2m3ldyamq2XQGE8U1OopqdBTXNlFUo6PEejujrL5dMeuIUaHuTI7yIj7ck0A3B9wdlZ1m/LRsSt04OpgvduUwLdqHHw5YMkmifTW4OylJyKg4699dKgF/VwdcHRW4OSrZlmbvwPjclQNJyq+2FWiBRahb/84SQMCysnzkkv6s2Hwiw6i4RseYl/8CLBPJgadmdHrqv+ij3bYxvDJvMNeNCj7r36270RlMJOZWszOzgl0ZFSTmVWEwCcilEktWU68DlTsAACAASURBVLgHY8M8Gd7vzFJFdQYTr61P5ZOELILdHXn9miGM7KGCJbGQ5wJhTWI+j68+jI9WxYeLR3ZLI+Rv9uTyrx8PAxYnxDcXDOG3w0X8cbQER6WMG0YHc+uEsC4xaWqhTmdoJc66E9drrEJdq6OqVSFMC1q1HD8XB3xd1Pi5qPHRWi59rT8SJBRWN5FSXEdKcS0pRXVklNVjtFbHKGVSIrydifbVEO2nIdpXS7SvBi+Nyrbp2DqjYFSIO4+vPsRqq5CODnUnv6qJguomlDIpRrMZswCezireWDCEDcnFfLkrt9PfXSWXEuWrIcjdkQa9kapGAzWNzWRXnJktrZNSZjtDcFDImBzliUouY8GIIDYcK+GTHdkAzIjx4YPFbbTAxv6cKuavSADgqqH+vHMaqYbnk2ajmUP51bYY9v6cKvRGM1IJDAqwpKGODfdgZIg7Tp30pO2MA7lVPLIqiczyBhaP7cc/L43GUdlzEWdRwC8gEq2Ohg16I29fF8eMmDN3NOwMQRB49IdD/LDfssK8PNaP964fxvGSOpb/nc7PSYXIpVKuGRHInZPCO+35KQgC1Y0Gu1VziziX1Opst9sLbXg6Ky1CrFVbBdoBX6tA+1jvP5svaLPRTEZZvUXQi+tIKbKIe+uON+5OSqJ9NUT5aiip0TE23IMxYR4s+XSvXdaOTCphQqQnc4YGMCPGByeV3K7wBeDm+BCmDfDm7Y1p7M+pwkuj4tJBvggC7M6q4HiJJetBJZcSF+yKi4OCguom8iqbqGlqO2m1xkujwkkpO2Ox99Wqbat9NycFLg5K3Ky3X/rtmO15Gx+aiJujEhcHRZdbEZyuf4jRZOZIYa1NsPdmVdoyaQb4aRkb5kF8uAcjQ91xcTi3MJ/eaOKdjWms3JKBr1bNa1cPYXxk99dAnApRwC8wimt03P7FPg4X1PDIzCiWTg7v0qKKpmYT81Yk2GK5v9473tYeK6eigZVbMlm1Lw+TWSDC25m5cQE4KWUU1+ptq+aWlXSLCVMLUgl4a9S2VbP96tkBPxc13lrVacUnu5KqhmbbSr0lxn68uM4mFicTH+7BwzOjiAtytYVfdmZU8NwvR9tNxfR0VvHYJVHMHx5o10OzsqGZXw8V8vTao+0e5+b4ENwclby18bjd/a3/JhuSS7jt8xPfrRtHB3PP1Eg2p5by0m/HqNOdmCBnDfTFWS2nurGZ6kYDVdbL6iZDp237tGo5bk5KXB0UuDpaBN9yqcTVUXFiQmh121kl7/D/siOflWXXxeHiqLCk9mVYbBHqrBN8pLcz8eGWFfboUI8uDecdKajhke+TSCmuY8GIQP49O+asXRq7GlHAL0B0BhOP/XCIn5MKuXKIP69d3bGj4Zm6pRlMZvZkVXLDh7tt990yPtS6em6ipFbfJoe5hSB3B/y0Dvi0CPRJYQ0vZ1WPGEudCc1GM5tTS/l8Z44ty6MjHJUyNGq53Qr++asGUtVgsBPdbY9NsTtbqdcbWX+kmJ8SC9iRUY4gQFywK9MH+OCrVZNeVs+erEoO5VdjMLX9nvq7qNn++FTb5HHfN4n8nFRoe/yG0cH8fqSY+6dH8ox1cgjzdGLTI5Pb/T0yyuqZZt1ABUsziJrWAt/YTJWd4DdT3WCwiWt7KGQSu9W9i6PCdt3VUUllg55v9uQxqb8Xf6eWEuOnJa203nbmEebpxBhrWt+YMI9usUk2mMws/zuDZZvScHNS8ur8wUyN7tqz2nOlTwp4d1s0XggIgsWX4vU/Uxkc4ML7i0a0m+rVerUzLNiN3w8X8fTPR1k0ph/OajnF1lBGsTWsUV6vp71/jTBPJ5sQW0TZAZVMym9HithszXKY1N+Le6ZG9NiGz9liNgvsz63ipXXHSCups8s4kUslzB8WyKtXx5KQUc7dXx3goRn9MZkFW2n66fDT3eOoamxmzYEC/kwuRmcwE+zuyJy4AObGBbRryVrTZOCyd7Z1OGHG+Gm5c3I4kd7OXPrONrvH7psagUQi4Z2/LCmBN8eH8OyVA9u8R0W9nuEvbrTdfu7KgdwUH3Jav5PBZLYJfHWTgaqGEyv7qkYDNU3NVDWcEP6qxmZK69pv0Bzk7mCLYY8N8+z2tMXjJXU8vCqJwwU1XDXUn+euHIirY+/zNO+TAt7RKdb58uboS2xILuGBbxNxUsl5f/GIdnNUEzLKuevLA9TrDLSzoAOgv48zQwJd8Xd1sK2aP9iWyY50S4ZF1suXdXhKXKsz8MXOHD7ankVlQzOjQt25Z0oEEyI9e7VnxsmVkXKpxLbJGeDqwO2TwnhtfQoms8A/xoXy7d483l0YR3WTgZfWHbO4Dcb6MXdoAC/9dsxWeu2jVeHmqCSjrL7dFTTAuHAPFo4O5vLBfnabpi2LlMqGZu78cj97siq5b1okD0yLJPa5P/HRqk4r68bdSYm7k4L0UstzP7l5ZJtmwzqDiYUf7CIxtxqwbIbuemJal6WNCoJAbmWjLYa99mBhm+fEBbmSWd5g84vpbkxmgQ+3ZfLGn8dxVst5ac4gLh3s1+3HPVv6pIDDCStLpUxKnc7IqFB3Bvpr8dGqW/2o8NGqe01uZk+RWlzHrZ/vpaRWz6vzBzM3rq3PxWvrU1i+OYNoXw1aBwV5lY0U1+rsVtsKmYRAN0cC3RwIcnckwNWB//5h6YizZFwIT8+O6VSQm5pNNr+V4lodsYEuLJ0cwcwYnx5vstBCcY2OX5IKWZNYQHJRrW0zcliwG+sOFdnK6IPcHSip0SMIAgarqF8/OoisMosjXbSvhnunRrI9vYxv9+bh6qDg4ZlRXDcyiKIaHWsPFvD9/nxbnnpHOKlkDA5wwcVBwfa0cv55aTRDg9y4++sDFNfq7Bwqr1lpyRD5/s54th4vY/HHe077905+/hK7bAqzWeDurw/w+5ETTY0Xj+3H81cNOu33bI+C6hMGULsyK9o9exjRz4300nqW39g9/iEdkVXewCPfJ7E/p4pLBvrw0tzBeDr37g5WfVbAAR5eddCWtiWRWFK/Tt4YA3BxUNjE3LJJduK6j1aFr4saT2dVlxTB9FYqG5pZ+tV+dmVWcsekMB67JNq2YdY6l7m1W5reaKKwWkdeZSO5lY3kVTWSX9lEXlUjeZWN7abvRVvT3oLdHQmyCn2QuyNBbo62XFu90cSPBwpYsTmD3MpG+vs4s3RyBLNj/XokBl6rM9hizjszKxAEGBLkytyh/lwe68/W42U8vfYIArRbxamSS4ny0XCooAYnlYyHZ0ShN5pZ/nc6TQYTi8eGsGRcCNvTy1lzoIA92ZbS91Gh7syNC+CyQX6olVKeWXuUb/fmMbyfG3dOCmftwQJ+O1yEg0LWbqGQj1bFdSODGWBNc1yxOYMNx0rY8fhUXvn9mK092ung4aS0OS6OCvXgxwP5fLg9y+45Gx+aSIS3JT31dMOYpbW6ExarmRW2CaulerSFAFcHlowL4dqRQXy1O/e8hkjNZoHPd2bzyvoUlDIpz181iKuG+vfqs8MW+qyAt4jOFbF+fLU7F6NZYOGoIO6f1p9anYESa6ZDaZ2eklqd9cdyvbRO32ZXXSIBDyeVTehbr+Bb33eqwo7ejMFk5tmfj/LV7lymRnvzznVDOVxQc9bhqDqdgbzKJm77fJ9tJTUlyov8KovIn+x54umsIsjdgSA3R4LcHfB3deBwfg0/JxXS2Gwi2N2ROyeFM394QLdnmrRsRq49WMiGYyU0G82EeDhy1dAA5lhjzjVNBp5cc5hfDxWd1ntOH+DNzowKNGoFxbU6xkd4Mi7Ck0P51fx1rNRiLerlxLxhgVw5xJ8gd0eajWayKxpIL60nvbSeNzccb/e9750SQZPBZBPVIYEu1OmMZFU0tLsnAZYY+Mc3jyQpv5o7vtjf4bjDvZwYEujK7qzKDuPpo0LdWXXHWNttWweea4YwOdrbdvs/cwdhMsPOzHJ2ZlTYwjkatZzRoR7093EmvbSePdmVVDcaGBLowq0Twrh0kG+PTN55lY089sMhdmZWMDnKi1fmxfYpW4A+KeAni8y2tDJu+3wfOoOZ/j7OvHv9MPr7dFzIYjYLVDQ0tyPsFtEvqdVTWqezdSdpjVwqwVujwltryaLw0Vqu+5x0W6vuOE2qp/liVw7P/nyUUE8npkV7M8laedjCma52zGaBsCd+A+ChGf25b1okgiBQXt9MbmUj+dYVe5519Z5b2UhRja7T1DR3JyWPXRJFpI+GYHdHPJ2V5/x5tmxGrkksYN2hImqaDHg4KbliiD9z4gIYEuhiO8buzAru+HK/XbecFq4eFmirtuyIIHcH6nRGqhsNeDormRLlTWygC2qFjIwyi2BnlNWTW9lo9zkEuDpQ1dhst9KfNyyAdYeK0BvNTB/gzdvXxeFszXNvajaRVlrHofwa/v3TkXbH4qNVEebpzM7M9itC/3hgoq3wq8UmtiMcFDI8nJU4q+RkVzSgM5gZHWrxJvfWqMiz5sI7KWWMDHW3pPaFeVp8yndk8WNiAQaTmWnRPtw2IZRRoe498j0RBIHv9ubxwq+WjeanZsdw7cigXvud7Yg+KeAdnb6tTSzkr5QS6nRGnr1yINed4x+k2WimvF5Pca2O0lZCb7l9YmVfq2ubLqVWSO3j8RrrKt6l1XWtulu6vZwOCRkWR0NBgBU3DLPrjH42bDlexk3WmOs3t41hbLhHp883mswU1VjCMy2inlfZZJfu1hoHhcwWew92PxGH35VZwfgIT6YNOJHedfIEdPJmpINCxiUDfbgqLoDxEZ52oTODycy/1xzhu315tvuGBbtywNqAeFy4J5utXiC+WjWXx/pyILfattHXHh5OSpsPC1j2EkI9nYjwdibcy9l2Ge7lbPt/+HZPLv+0Vr22oFZI+XDxyDYFJKnFdTz43UGSrbn5T1wWzZyhAXZVpinFdbbHT+axWVEM8NVS0dDMI98nAW3L8U+HCZGeNovVwQEuyKUSdmZU8MG2TP5OLUMll3L18EBuGR/ao71Yi2t0/PPHQ2xOLWNsmAevXR3badFZb6ZPCnhnlNbpeOi7JLanl3N5rB8vzxvc7Un3jc3GE4Jep6fUGr4psYZvSq2i356NqlYtt4m5tzVUc/LK3lvTPfH5nIoGbv1sH5nlDTxzRQyLxvQ76wlPEASufHcHhwtqcFDI2Pzo5HMqqd+WVsa/fjxsV904vJ8bDXoj+VVNbSo0nVUywryccVDISMqv5tJBvpTXN3Mgp4qGZlO7lZEn8+fRYm5vFWqYEOnJA9Mjyalo5KFVSXbPnRnjQ3ppvZ0vTHt4OCmZEu1tE+oIb2eC3BxOGS5Y+P5OdmZW2t338c0j7Py2TWaBj7Zn8vofx9Go5bw0dzAPfJfIDaP78dTsmDbvWaszEPvsn50e91wI93JieowPw4LdKKnV8d3ePI4W1uLprGTx2BBuHNOvW3x6ThdBEPjpYAHPrD1Ks8nMvy4dwKIx/fpsSBQuQAEHy6nyyq0ZvPHncfxd1SxbOKzHLR4FQaBWZ2xnJW+9XWcxYCqt09tS1Vrj6ay023S1XLePz3s4nXl8vk5n4MHvDrLxWCnXjw7m2SsGnrWP8YHcKuYtt2RCjOjnxje3jznniedIQQ3LN6fz+5FiVHIpC0cFc/vEMNRymW3lvj2tnG/35nX6PjKphOH93Gzxd8ul5XpGaYPNDxssn/UPd8bjrVWxL7vqtLM5Zsb4MD7SEx+tmr+OlfDjgQIEBBaNCeHeqRF4OKtOKzxVWqtj1H8sBlOujgqGB7vxd2op/X00fLB4BEHujuRVNvLwqiT2ZFcyM8aH/8yzZExc9s42vDQq/rdoOFnlJ0I1GWUNZJTWd7gKPxMWjelHjJ+W//6RyusLYpFJpfx4IJ9fk4ownaQbjkoZL88bzPgITzx6MKOjvF7Pk2sO88dRSzeiNxYMbTe3vq9xQQp4C/tzKrnvm4OU1Op4bFYUt44P6/WzrdksUNnYbF25W8I3LXH6lpV8Sa2eioa2BTVyqQQvW3z+hLB7ayyibwnlqNE62MfnTWaB1/9MZcXmDEaHurPixrN3NLzt831sSC4BLBWa7a0Ez4b00npWbM7gp4MFSCUwf5jFb8Xf1YHNqaV2K+fzyfd3ju2wMGndoUIeWpWEwWTGUSnn0kG+bDxWckof9QFPrafJYEIulbDxoUmEeFpsYO/9+gBSqYQJkV5sOlaCVCLhvmmRxAa6WAS6rJ6PrJucEgl2/x9OSikjQz1sRVVnwqgQd5xUMnIqG8kub6BlfaGQSRjgp8VZJbdl74DFEiE20BUHhYzEvCrbmWeEt7Mt02V0qMd52yz87XAR//7pCPU6Iw/P7M+tE8LsLAv6Mhe0gIOlae9jq5P442gJk/p78caCIb0+t/N0MJis8flWm66tN2RbrrdneqSSS22hGu9WmTa7MivZlFIKwI9L4xkW7HbG4zpeUsclb2+1fZnfu34Yl8d2XSFEXmUjK7dk8NVueye/FstUgGtHBvHinEEUVetsKY/ZFY3syqzgYF7HseozYcUNw4j0cSbQzbHTOoOE9HIWfbzHtlHp4qBgTJg7N47pZ9c7MiGjnIN51RzOr7HlXic9MxMXBwVGk5n8qia+3ZvHyi0ZHR5LrZDaxHJ2rB+XDPSlQW/kxXXJSCQS/rdoOM/9nNxuS7iTUcgkGEwCv9wznsGBLrb7dQYTaSX1HCuuZdXePPblVLV5rbdGRZSvhgF+WsK9nGg2CVTWN3Mwr4p92VW2Evtgd0dbb9ExoR4EuTvYFhZdUW1d3djM02uP8nNSIYMDXHhjwZBOkxv6Ihe8gIMlfPHlrhxeWHcMVwcFb1879Jw37foKOoOpHWG3T6ksrtF1aMwU4e1sCdNo1HYre++WOL1G3Sbk8tCqg/yUWICvVk1Nk4G194wnwvvcN6066xkZF+TKM1cO5MV1yezLrmJ0qKUFVkvGx6k690R6OyOXSU+7w09rXBwUhHs5WXLfrTnvgdYwTX5VEws/2AVYQjP9PJzYn1OFVGJplHHftEh2ZlZw91cH8Hd14Gih5fjzhgXQ1Gwio6ye7PJGu+7zrbk5PoRQTyf8XNS4OipZk5jPN3vyUCukLBrTj9X7C3h4Zn+OFtXwzZ68DlMOAf56eJKd5wlA9iuX264nZJSTlFdNuJczH27LYk92JRqVnOtHBzM71p/qpmbbhmlKcS1pJfW2ccukEsK9nIj01iAgUNtkpKbJQH7ViXoCX63aJuhquZT//J5y1tXWfx0r4Z8/HqaqoZn7pkVy1+TwC7LO46IQ8BaSC2u555sDZJU3cPfkCB6YHtnrzZPOB4IgUKc/EZ9Pyq/mtfWptsfjgl0pta7y2yv99nBS2gTdR6PGYDbbNRhwdVSw7bEpZ1SC3bICC/N0tquMlEgsnipTo70J83Tmo+2Ztm7qZ8p1I4OYOdCHh1clMSzYjb+sZx/tMTTI1VahmnWKjctT0dqf+2xoXdLfFfx+/wSufHc7GrXC1o6tNUnPzCQxp4qlXx9Aa81xD3B14B/jQ7l2ZJAtpfFkjCZLjvuxojpSraJ+rKjObvLVqOTIZJaGwCdLjkYtR2cwcdlgP7allZ+WeNfqDLz4azKr9uUT5aPhjQVDbM6MFyIXlYCDJWPkmbVH+X5/PiP6ufHOwjgCXB3Oy7H7EjqDicdXH2LtwUKuGOLPa/NjUcmlVDU22226tlxvEf/i2o4Nr3y0KmuGzYkN2JNz6F0cFNTpjby7KZ2Pt2e1EaoAVzV6o0B5/QnTI6VcirdGZZex0hq1XMr1o/vhrJLxwbYslHIpL80dhKNSxte7c9l4rGPh9tKouGNimKU3p8FEU7OJzPJ6EtIrUMokNJ7HBs3zhgWgVStwUMpwVMjYkVHOrpMyVc6G1BdnsfzvDJux1cT+Xmw9bj8ptoSouqLwplZn4LjVlje1VZpjZ23tbhwdzHNXDeo0dr09rZzHfkiiuFbHnZPCuX965Hm3Hj7fXHQC3sJPiQU8ueYwcpmU166O5ZKBvuf1+H0BQRBYsSWD//6RyiB/F95fPBw/l1NPdkaTmZTiOmYv245SJsXDWUlRjQ6wpOaVWkW/vSKZU+HmqCA+3JPYQBdb/nSQuyMyqQS90cRzPx/l6z2dZ6ScLQqZBAeFDEelnGaTicoGy/jlUglxwa42uwC5VEJ1k8HOnOnkTcUzQSqBSwf7We0JHMkqr+eDbVmnfJ2fi5q4IFc2p5ZiMAsdGmd9c9sYanUGu2rNWQN9cXFQ2PLhQz2deHV+LCND3Lql2EUQBAqqm2xNNFKK69pUwCqkEqL9tET5aoi2xtijfDU4KGS88nsKX+zKIczLiTeuGULcWezf9EUuWgEHi3nNvd8c4EhBLTfHh/DPS6MveuOr9tiYXML93ybiqJLzv0XDT3tz880/U/m/Ten8fM843tmYxta0Mr69fSzD+1le39Rs4rfDRfxva4at+0wLDgoZvi7qDsMVziq5LYXSLAhntRId6K/lssF+NkOu1rSkmjkqZTgoZTgoZHYx1A+3ZfLiOkuHGqVMwmWD/bh0sB+T+nuhVsjQGUyMffkvRoa4836rNmVldXpGvrTR7ljjwj3YcQ59Mzsi4z+XIZNKeHjVQWtKY8eEejq1+awVUglSqYQFIwJZd7j4vLp9brDm5Mf4a3l1fiy/Hiri0x1ZRPo4U1SjtzsDa82LcwYxNMiVCG/ni+K7fFELOFiMlV79PZWPd2QR46fl3evjerRKrLdyvKSOWz/bR3GtjlfmDWbesLaOhidTqzMw8bW/GRzgwrsLhzH73W0YjAJvXzeUrcfLTlkZ2bJxNWeoP58mZNvS1+6fFklJre6Uud8d4eei5snLB1BSq+fdTWntmnJ9fevoDje6TWaBMS9vpKrBwGWD/fjjaDFymYQGvQlHpYyp0d406I38nVrG17eNtoleeb2eecsTyK084UB4eawfVw8LZMmne1HKpB1uVp4t7QlzC53F4gf4aSiq0bH8hvPrCNjCgpUJ7MmuYv0DE4j2tXS9b52FUlDdxG2f7bPLa1fJT5jZyaSWatdo62o92ldLtJ+GAFeHPlcu3xkXvYC3sDG5hEd+SKLZaObFOYNOS6AuNqoamrmrxdFwYhiPzYo+ZT7tB1szeem3Y7x97VA2p5byU6uwwuQorw4rI08WjB1p5dzy+d52q1kBnrkiBi+Nike/P9RhRs3pEhfkirNazhWx/nhbC6d8NJZekRKJhGWb0njjz+PcPy2SB2f0tzVyuHNSONkVjfxxtNi2Gdjfx5mZMT4sGBHM3OU7bCX1k6O8GB7sxhsdmFe1R5SPhpzKBttnoFZIiQ10xc9FTWF1E+ml9e1ORmeDk1LGu9fHMSXa3qLg/a2Z3D4xrFudAvMqG5n2xhauGurPf68Z0ubxg3nVPLzqIBllDdwwOpgnLhuAk0pu3TRttNswTS2pJa/SftM0ytqoOspXywBfDf19Nb2mRdqZIgp4K4pqmrj/m4Psya5k3rAAXrhq0Fl3r75QMZjMPPfLUb7clcuUKC/eWRjX4T9/rc7A2sSCds2RFo4K4uV5sbbbJ+f9rtySgUwKeoOZCG8NvxwqZF07roA7/jmV0lodaxIL+H5fHk2tBH7p5HDGR3iSlF/NIWt+dZSP5pR50G6OinaFUCmT4q09sVm6eGw//F0d8NGqKK/XU1qr5/7p/TmUX831H+xGKZPioJS1ycV3VMq4Y2IYZfX6TjvT+7uoKbTuHbTg6aTk7eviGBPmjlwmbSOeeqOJ19an2gp6zpUR/dysqZEOBLo7UqczsOyvdN69fhjjI7tnZf7gdwf57XARmx+dbLfn0mw0839/pbFiSwbeGhWvzo9lYn+vTt7JQp3OwPGSepsvjKWvaa1dP9AAVwcG+Gms8XUtA/w0hHg49fosNVHAT8JoMrNsUzrLNqXRz8OJZQvjLug0pLPli105PPfzUUI8nfhw8QhCrGXJ7dm0tvCvS6O5Y1I4j/9wiO/25fHRTSNsJlQnt3Z7f2sm725Kx2g2c3LG3A2jg9sU8rRmTJg7i8b0I6+qiTsnhduc51rMoUI9nfjy1tGU1Opspf8t7H5iGj5aNTqDiTKbFXGLz42ObcfLbaftzip5p5kTQ4Nc0ajlbEvrvHdma7RqOWqFjAa9kYZmEy4OCmbEWD6jv1NKqGgwMNBfy4gQNwLdHFixOdMuV/pQfg0LRwUz5Lm2nicKmeVsqb3NzGB3R7vQTuvXeDmrKDqpuQeAr1aF3mg+ZWXpmXCkoIbZy7Zz1+RwHp8Vbbs/ubCWh1YdJKW4jquHB/LU7Jhz6jQvCAKFNTpSrSv1FGtGTEZZg63oSimXEuntbAm/WFft0b7abum/ebaIAt4BOzMqeOC7RKoaDDxxWTQ3xYdcULGzrqDF0dBsFlgyLpSyen27Nq0D/bVc8tZWZFIJ6x+YiMFkZv6KBPIqG/n13gkEezja3u+OL/ajM5g6zJg4HSZEeLInu5JxEZ6U1+s5lF/T5jnXjQzqMIaulEm5a3I4we6OyGUSpBIJcqkEmVTCU2uPUFKrZ9nCODydVdTrjRwuqOFgXjUHc6vadaY8UxwUMi4b7MfsWD/GRXjaCqWajWZeXJfMFztzbBuSSyeH89is6DYr4ZEvbaSsnf6SDtawy+H8GhpPCjUp5VIOPj2D0lo9t36+j/RSy8bywadn4KiUU1jdRGZ5Pf9ec8R2ZnDvlAgeviTqnH/nFm78cDdHC2vY8tgUtGpLFerKLZYURxcHJS/PG2yb0LoDvdFEemm9NQxTx7GiWlKL6+x6dXo4KW1iHuWrYYCvlkifntk0FQW8Eyqt9pqbUkqZEePDf6+O7ZWNTXuKtJI63vkrzS7da85Q/3ZtWn87XMTSrw7w+jVDuHp4ILkVjcxeto0gd0dW3xVv++e/9+sD/HKaDRRcHBTtWgV0lLKnlEvtzgh6O57OKmRSkEulyKSWSUQqldiEtYVpCAvXtwAAIABJREFU0d4k5lXbhTHC/rWuzZkLwOq7xqI3mrn5k700G81o1XLbpDM+wpMvbx0NWCaLuct32CpDf7tvAl4aFXd9uZ99OVWoFVJuHR/G13tyuyx80tIG7qnZMdwyPpT0Uktj4aT8GmbH+vHCVYNw6yE3w4p6vU3UW9Icj5fU2fYjpBII8XRigHW13mIlEODq0K7/Ulc1ZhcF/BQIgsBH27N4dX0KXs4q3lkY1+e6qncl7fWMjAtytXliLBwVxHNXDmpTXt9iN1vZ0MymRyahksv461gJt3y2j2tHBHH1iEBe+T3FVmYOlvL2ohqL37q3RsVVQy0r+khvDT8dLOCxHw61O8YwLyeKa3QYTQK3TAjl7ikRdtWCd3yxjz+OWgy3PJ2VtsYd902LpF5nJCGjnJTiU/uFdBXRvhrcnZQkdJBKOD7CEy+NCqNZoLRWx+6sEymTXholZXXN3Dc1godmRlFWp+eldcl2m8UtlZteGhUNeiNvXDOEV9enkF3RyJBAF5KsZyiPXhLF3VMi7I497pVNdpWTCpkElVzG+4uHd2l2itkscPmy7dTrDWx4cBJf7Mzhv3+m4qSU8cKcQcyO9T/r9+4uTGaBnIoGq6jXkVJkEfbWoShnlZz+Ps5E+1k2TKOsq/ajhWffCas1ooCfJofyq7n3m0TyKht5cHp/lk6JuGAczU5FZz0jZw/xx9NZhdnqaLh8cwajQtxZceOwNvah29LKWPTRHp65IoYl40IxmQVmvLWFzJMaB7Q2ZZoQ4cmisf1wVMrZl1PJ7szKNp1lFo4KxmAy88P+E11yRvRz480FQwn2cKSmyUBeZSP5VU0s35zebkilNe5OSoLcHFArZHZi2UJLuppEAoP8XRgb7sHYMA9Siut4dX3KKT/P2EAXDuXXMCrEnVV3jrV7TBAEnlp7pM3mZlywKzF+Wn49VMQgfy07MiqY3N+LLcfLmBPnz6aUMuKCXNh83D7e/uRlA1ixJYPJ/b3456XR3PHl/g6bT0zq78Vn/xhld19No4Ehz5+Ipzur5Lx+TSyzBp0wKOuKLJQfD+Tz0KokHp7Rny3Hy9iXU8X0AT78Z94gvDV9p8UZQL3eyPGSOuuGaS3HrOLeOrzmb3UHTSmuY8m4EL7dm3dWk6Ao4GdAnc7AE2uO8EtSIfHhHrx17dBzalrQmzmdnpHtsda6MvZ0VvHhTSMY4Ke1PSYIAtd/sJuDedXcMzWCb/fm2qV4geVUdEiQK8HujugMJo4U1HbowfLbfROI8dfy6Y4snvsluU2hio9WRVOz6bTj0i/OGUhlg4Glk8M5WlhLgrUR78ll5WAxkXpwRn+cVXISMsr5KbGQ1ados/bOdUOZEePDyi2Z/N9faW2c/lrz5a4c/v3TEfp5OHLVEH/+Sim1hTNakMssRTa7Mio7bCzx8Iz+vLHhOG9fO5Q5cQHojSZGvrixw8+ktXmV0WTm5d9TbBktLSEcFwcFby4YYuemeC7oDCamvL6Zohrd/7N33uFN1e0b/yRpm6403XvvXUqh7CkgQ0RkKCpucOF8nThf9x6vewsiiICIyt57tbR00F26RzrobtImOb8/khwa2rJEfV9/3NfFlTacc3KSnjzn+T7P/dw31pZSLGVSXpgew7UDff7n+046vUBxXRuZlc1sz1Gx9UStGdffUiqhWy+IK6gLxeUAfoEQBIFVKRU892sWdlYWvD03gXER7n/3aV0S6PUCKaWn+CX93J6RZ8Px8iYWfp9Cq1rLu3MHMDnWIFOgalHz8E/p7C/sf+rQ2tJQp9YLhoAR76tkgJ8TJ+vbRNEquYWUCdEeHC9v6lf/xIRRYa6MCnOl8lQnSw6WEuhiy7pFI7n2k/0U17UT7mFPnnEK1NZKRoSHgkJVmyh5Gupuz/AQF5YeLEUqgScmR/LVvpN9Ngj7w7UDfXh37gDAMMwz+s2djI1w45Mbk8663/LDZSxem8nocDe+mJ9EbYuhfPX2lt7c8RkDvDlZ305GRTNPTYnktY2GlYC7Qk5dm4aUpyfgYlwpJb28tV+++P4nxxt8Odu7uH9FGvsK67l1eCC1LWq256h4Z24C/9leQIGqjYWjg3l0UsRFG4CY8Py6LJYcLAUMf683Z8efl2TDfxs0WoPUblZlM1lVzWRXtZBT3SKuJuUWUiK9HIj1diDGW4le0PPOlnzmDw1g2eGL6yX0F8Avk5/7gUQiYe5gPwYGOLJoeRq3fXv0kl3IfxcuxDPyfJDg58ivi0ay8PtU7l6WyvQEb+QWUn5NrzrnpKHpYvdSWuNib0VJQwfHzljya7T6Xpzwl6+JpbG9i3e35rPq7mF0a/UsWpFGelkTif5OrE6tIMzdnp/uGsbPxyooqmsn2NVODN4AHV06mjq7uSrBm2EhLgwNdsZdYU1WZTNLD5Zy3WA/2jTacwZvuYWUuYP8+PV4FTcPC+CHw2UcKKpneIgrH+8sRKPV86/zyLZuGOKPTApP/pzJgqUpvDMngZKG3lQ/QNRdsZRJOF5x+vNStWqI81GK5ayNWTVnHfa5+/tU3poTz4KlKdQ2a3hzdjxzB/nR0KbhUPFuvt53kl/uG8GrG3L4Yk8xB4sa+M+8xItytxEEgS/3FovB+9WZccxL/t8wFu7o0pJT3UJWZQvZVc1kVbZQoGoVV4oKuQVR3g7ckBxAjLcDsT5KQtxO88pNNW8TBXNoiMsl5dNfzsDPA+puHS+vP8GyQ2Uk+Dny4fWJIiXuvx19NSPP5Rl5IRAEgZ15Km7/7uL+rt5Ka9RavTjRaC+34OMbB1La0M6Xe4spb+xkfKQ7T0+LIsQofbC/sJ4bvzrMT3cNIznImYpTHYx/Z7fIPLl/fCj7C+t73RB6wsQDN6G0oZ0xb+067/N+Y1YcXkobHlqZ3qtB9cL0aB5dlcHMRB/emB1/7oMZ8d7WfFEpsCfcFXKOPD2B/2wv4N2zTHTeNy6Ex66MRK8XmPzBHvJr25BKEFkqPRu5PY/9+fwkM1GodemVPPhjOs9Mi+LOUcFsyqrhyZ8z6NLq+ffVMcxO8j3v4FvboubJNRniqurLmwf9qfTAP4Lmjm5DkDZm1VmVzRTXt4tMJ2c7KzFIx3g7EOutxN/Z9qzuX//1LBSJRDIbaAKCBUH44mzb/q8GcBM2ZFbzxJoMEOC1WXH/lR1z6LsZOcDPkWt6NCMvFJ/tLiLeR0mklwMVpzoormvn4ZXpZxVO6onBgU4kBznj62RQ2ntrSx7Hy5uYHOPJzjwV9nIL3poTj4+jLS/9foJ9hfWEutvz7FXRjDljCu9AUT03fHmYFQuG4uNow8qUMj7e2b+DjaONJVq9QGeXlp4l9sVTI/nP9sKzDun0BdMEp8LagmsTfXhqapRIjzxQVM9rG3LJq21l16Nj8T4PCeO0slN8tfckG7Oqe1ECJ0Z7sPVELY9MDBeD9yc3DmTJgZI+G69ng9LGEi+ltRnzZlyEG1/ePMhsElEQBBYsTWFfYT2bHhxNoKsd1c2dPPRjOodPNjI9wZtXZsaedSxdEAR+PV7Fc+uyRQrorIG+vDO398j83wFVi1oM0tlVLWRVNZuV6byV1kR7K4n1MZRBYn0c8HSw/ttWDX9KADcGbwRBWC2RSBYCxYIgbOtv+//1AA4G/YYHfkwjrayJecl+PHdVDDZWf78aWn/NyGsSfZgxoP9m5JloVXdTcaqT8sYOyo2PFac6OVHdTFWT+pz7+znbiA3L5XcOwd/FlvFv7+6VjZY3djDqzZ2AgV734bxElh4s5YfDpSisLXl4Qhg3Dg3oVdapaurk/W35/JTSu5HoYmclapCY8OxVUXy0o5DHroxg8dqs8/oMRoa6cmWsJ7aWMv61ytyl3tPBmveuG8CWEzV8u79EfN5bac3sQX6UNrSLZY75QwPQaHWou/W9Hju7dOdleXYpMSXWky6tvpehxYQoDz6cl2h2Hb+1OY9v9hWT4OfI8juHIpVK2FdQzxd7ithf1ICX0pr/zEvsU7GyoU3DM79ksTGrhkR/R/R6gdya1l4j838FBEGg4lSnWP4wZNgtZuWxIFc7oo0ZdYy3AzHeDn+rMXNf+LMC+BvASkEQjkkkkgnAQEEQ3uxv+39CAAeDTsg7W/L5bHcR4R72fHTDwL/Fg+9impHqbh0VpwzBucIYpCtOdVDe2En5qY4L0u62kkn45tZkRoS6mL2OqGjYrObVa+PIrmpmyYEStjw8hlB3e3blqXh0VYaZVKitlQyNVs+NQ/x5eEI4TnZW4hj0rjwVO3Pr2JWnuqQONf1BJpWIY9Z/BDaWUqwtZShtLJFbyLC2lNKi1vapGnj9YD+c7azE7UzNyZ54e04CQa62qFo03PPDMeYk+fLY5AiSXzE42/9y3wgyKpp4rg9NmnMhKcCJr28ZJA6wHSiqZ8GSFNq7dLwyM5YgVzuxdiu3kPHgj2lUN6t5eEIY94w9TbXdlFXN02uzaFVreXhiOCNCXbj6o/29Rub/DOj0Aifr243B2pBZZ1e1iCsAmVRCqJs9MT6ng3W0t8MFOUj9XfizAvjnwOc9AvhEQRCeOGObhcBCAH9//6TS0tKLfr3/NuzJr+ORn9JpVWt54eoYrh/85zZmTPU0V3s5v/RoRlpIJVwV78WMRB+GBbtQ26LukUUbgrMpaJ/ZmLOykOLrZIOTrRWqVjXVTepeQdLPyQZVq4YFo4IorGtnU1YNcgspz0+PJsJTgaZbj1qrM3usaVHz/rbe9dxz4e+eorxtRKBZZg0GzRWTDvm3tw5GbgzMcovTjwW1bTzwY5oonHTnyCAS/R15dl02H92QSKi7Pa9tyOGXtCqD442fIwtGBTE5prfjTWeXjujnN+GttBGHaxaMCuLpadEAvLYxh6/2nmT/E+Np03Qz4d09AEyN8yS9rInObh2nOrqZHOPBrvw6urr19PxEXe2sqDeuVMLc7SkwTnyGutuz9PZksexzoLCem785gkQCdlYWfHLTaS2UFnU3z6zN4tfjVQwNduaFq2P4bFcRv6RXEePtwLtzBxDhqWD+14fJrGxm92Pj/pCmyZno0uopULWSXdki1qxPVLWICpVWFlIiPRVi+SPGW0mkp+J/Vjv8z8zAtwqCsK2/AN4T/5QMvCdUrWoeWXmcfYX1TIv34rVr4/4UycqaZjX/2ZHPyqMVZtmhVGKoLwtIqDzVSXVzp1kdVSaV4O1oja+jLX5GA14/Z1vs5BbUtKg5WddOSmkjWZXN6AXD9nE+SoYEOTM40JlBgU442lpxoKie+V8f5hLLWJ8TCmsLxkW4M9DfEVsrC+SWUl5ef4K61t6ejueLm4cF8Gt6FR/ekMjX+06y6yxem+/MScDXyYbrvjjE69fGcX2yf7/b3vTVYfYV1jMx2oMduSpkEglxvkoyKprQ6QX0gmHw6IkpkQwK6N/xJqOiias/2t/7+RcmIbeQMuy1HQwOdOLz+YP4et9JXvr9BHA6MEd6KsitaWVKrCfbc1RmjKAhQU4cPnnaYX5anBc7clVi4HO2s+LHhUPFFaWJ+tfzBmKCIAisOVbJoz3KTA9eEcai8aFYyqS9RuYvFp1dOnJqWsiuNJZBqpvJrzltpGxnJSPa21SrNmTWoe72/yhz4z+LRngUcDT+HAxs/YPH+5+Du8Kapbcn89meIt7Zkk9GRRMfzhvIAD/Hc+98DvTVjOypaQEGhkFRXTuBLnYkBzmLcqC+ToZg7aW0xkImpaZZzZGSRo6cbOC3jCrRGcfKQkqinyOLxoWSHORCor9jv8wUmVSKTq/Hz9lGdBvvCRc7KxxtLUn0c+KqBC/ifJQobSwZ89ZOKs+jfg4wM9GHm4YGEO+rNPsC6vUC727N56OdhWbbh7rbMz3em5P1bWZj5f3Bw0HO7xnVYjYplUj6DeBvzo5nVpIv9yxLxdHWkhkDfPo97v7CevYV1ovMjfTyJq75eD+ppaeD5VXxXnx0w8BznmPPJuNL18Ty7C+G2v38r48wO8mXxvYubhwSAMDu/DpC3OwQBCiub8fFzpL82lYU1hZi8J6e4I29XMYvaVWsWDAMtVZH9HObAVifaU7TbGzvYtJ7e1h99zC6dHp+y6jmgfGhLDtcxrhIdzM2RZtGS0qJeSO1vk2DVicgkwi8tjEXP2cbbhra/03vTDR3dnOiylCrNjUZi+raxKTEydaSGG8lt40MFMsggS52Z2WC/JPxhwK4sXn5uDH7djxbA/OfDKlUwr1jQxkS5MwDK9KZ/ekBHp8cwZ0jgy/4wuqvGfngFWHMGOBDgLMtdyw5ys68OpEi1tmlw9nOiuQgZ8ZGuOHpYE1ZYwcHixs4erKRIyWNlBp5xfZyC5ICnJgxwIfkIGfifZXnZQj72/Eq5BZS7h4dzLLDZXx600Ba1Vp25akIc1eYiesX1bWz+hzTigBDgpzF8XRvRxtmfrKfjIomIjxjxeDd0KbhjiUppJf3pgQGuthSUt/Oe9t6U+sSfJVMi/diapwXvk62HC1p5Oavj1DbouGB8aFiIFqV0r/bz09Hy3FXyNmcXcPC0SH9NqsFQeDNzXl4K62ZMcCHd7cYdLolEoj2ciC/thVBgN8zqlG1HOC56TFnlS42ab8sHB3M/KEBfLyjEI1Wx4mqZp4tb8LJ1pKRoa6ou3UcLm7ghiH+YtmnwejfaSrlPDklkrtGB7PyaDkrjpRTcaoTfxdbbh4WwNKDpdw6PJDhIS5syqrh57RK8Rxmf3YQuYWUz+cnMTbCvRd/+UBhPY+tzqC62SDlu2h8KB9uL+DzPcUcOdnI+Eh3cqpb+OD6Af1eX3WtGjFQm5qMPfVFPB2sifF2YEqcl2EoxkeJt/LvY4L8N+IyD/wSo7mjm8fXHGdzdi1jwt14Z27COWl7F9KMNHGNbxriz/eHSrlzZBCVzWqW96ObrbC2YFiwC8lBzgwJciHKS3HB4vVnCvCcTZBHrxdYl17J4rVZ53TMmTvIF7mFDK1Oz2OTI8mraeXGrw4xJdaL6wb7cfM3Ry7oPMEwQTktzqsXT9/kpnPdYD9+Sqkw1KXd7El+dXuvY7wwPRqFtSUvrz8hDsPsfHRsv0yeTVk13L0slUAXW051dNPc2c3UOE/GRbjz2sZcProhkQgPBS/9foJ16YYa+JhwNxaND+0lmLY+o5r7lh8DoPjVqUilEmZ8tA8HG0tGhLryurG5mf7cRI5XNHPLN0f4+pZB3LHE/HtlZRSj+twoRnWs7BTXfnJA5GGnlZ1iplEj3TRWr9Hq+G5/Sa8G6vQEb6bGemJjKSOzspn6Ng1LDpYS5GrH23MSRO9TMOjg3PfDMXGVWPzqVCQSqGzqNATqHrS92pbT/ZgAF1sjA+R0GeRi6K7/VFwepf8LIQgCyw6V8tL6HBxtLHn/ugF9+i7m17aaNSPPNRlpCpwfXD8ApY0lPx0tZ2VKOXILKW2avoOlg7UFYyLcGRfhxphwt/OiR/XnmqPTIw4fnGsYoacSIBhKAQgCL/x6Al0/15ylTNKnFkqCnyPH+8jAAbHeC5D6zIQ+319/NyDT8JCTrSWBrnai+NO0OC8+nJdIdYuaEa/vAAzKh69fG09ykHnAbddoiXl+s/j7FZHuPDwxnFgfZZ9DHNtyall6sITsyhYa2rtIDnTmvvGhjA4zBNl5Xx6mS6s3K7csXJpCaUMHw0Jc+O5ACWDI7CM9FfyeWc2z06LM3JC8Ha354c6hVDd3iu87zkdJ3AtbRCVCnV4gZPEGAPJenmyWJTd3dHPLt0f6XPWYMHeQL/++OrbXqkSvF7hrWSpbT9T2uZ9UYih7xRjLH7E+SqK9Hf5nrc7+Klwepf8LIZFImD8skKQAZxatOMaNXx/mvrGhPDQhjPq2Ln49XskvaVVmk5GPXRnR72SkRqsjo6KZz3YX4etkw93fp4omtR4OctwV1tw8LIAhQS74ORvMXJs7u9lXUM/OPBW78ur47XgVEgkk+DoyPtKdcRHuxHg79FniifdVmgW8nr+bMDzEtc9R4FZ1N0/9nMnm7FospBIsZVI+vWkgY406MoGudsz/+nRm7aaw4opID348Wt6vuUN/wfuxKyNwsLHk2V+yeGdOQr83p4yKZrPVwkB/J4Jd7cQAHufryJ78Ol6+JpaOLi2vbsglwMUWf2dDFr9oXCjrjlcy9/ODzEv258kpkdhYyliZUi7WpwF+vne4GS+6r5vbhCgPJkR50NmlY8WRMr7YU8wt3xwRextKG0u6tHrie4hfeThYsyu/jqrmTmYM8Obagb4sWGow+o30VPSystv80GgU1pYEudrx0Q2JZFQ0MzzEFR9HG/KMNzuZVCKW4NLKmhga7CLur7S1ZM09w3ltQw5f9WPZ9kt6FXWtGsI9FHgYS3bZVc0cLTnV5/ZTYj1ZMDqYKE+H/4q5iX8KLmfgfzI6urQ8svI4m7JrzJ4/22Rku0bLsbJTHDnZyJGTjaSVN4nUuggPBclBzgwOciY50BlP5blVEvV6gayqZnbm1rEzT8XxiiYEAdwUcsaGuzEu0p2RYa5mWZCp5BDiZk+hqs2MQtYXdHqB1anlvLI+lxZ1N6PCXHl7TgJFdW1i8I/1UfLGxtyz2qRdLH5cOJQoTweUtmfP5FQtahZ8nyreFGwsZXR263hpRgzzhwUiCAKL12ax4ojhHCM9FWx8cBSd3To+2Gao8faFk69NvajarEar45t9Jb3kaXva0H28s5C3NucBiPIBK4+W8cSazF7He2RiOA9cEdbna93+3VGqmjrZ9NBos+POGODNB9cn9rnPy7+fMAviD00I47fjVRTV9a2KaMK7cxO4Kt6bQlUb9684RnF9O3eNDuFfk8L/UeyQvwqXM/C/GD2bkTvyzCffFk+NZOHo09lZc0c3R0sMzcbDJw2UPp1eQCqBWB8lNw8NMATtQOeLciqRSiXE+zoS7+vIgxPCqG/TsCe/jp15dWzOrmFVagUWUgmDAp0YF+HOuEh3hgW7MDLMld+OVyOVwK/pVXg6WBNs1CPpiSMnG3nx92yyKlvwdrTmsSvDmT8sEDBkjx/NS2RVSjkP/ph+Qep+Jvg42rDrsbFotHrya1v5Nb1KLCWYcP0XhwCDOJbJsNbkbxjsao+VhZR//5bNuvRKOrtO0+o6u3VMjPIQz1cikfDijBjWpFbQpdMT6alAIpFgbSEjpp/G4/d3JF90Y00QYHuOYbVy4xB/UfDpnh+O8cL0GGYl+eBu9GaUW0gZHGjI8M+cM3rpmlg+3VlIcZ25i09PhHso2FtQR7dOj6VMyrQ4L97anMe69CqzAN6q7uZ4eTP3LEsV1RpNeH9bAVIJjAh1IdrLgW6dQFljBznVLVT3MGbWaPW0qruJ9nbg9/tH8eLvJ/hsdxEHi+r5z7xEAlwuXBTrMnrjcgZ+CXGuZqTSxpL7Vxwjq7IFV3s5E6LcSS9vIs/IUrCSSRng5yhm2EkBTmYOM38GtDo9aeVN7MxVsSNXJdaTXe2saNVoGRLkzKGTjQh6Aa0gMDnGk7vHhJDg50jFqQ5e25jL+oxqvJTWPDklkqsTvM2CWXVzJ3cvO9ZvGaQ/DApwEt1/bh8RxHPTT3OQC1Wt4vDKE5MjmZnoQ06NwdPQ5JZSVNcmlmRMTjUmxPk4kFlp0Ny2tZLx1S2Deq0ubvjyEAeKGrCykPLwhHDWpVeSW9NKhIeCByeEkV/bKg4qPT89mpuHBV6w8YdeL3D/j2msz6jm4xsGMi3ei6d+zmTFkTLRQcfDQY5OL1Df1sW0eC8+NtbFA59cb3YsE+9ZJoXf7x/V5+utTavg4ZXH2frwaMI8FAiCQNBThjr4onGh4hTjmUqISQFORHgqzBrlB54cb6bzIggCE9/bQ6GqDSuZlC6dHqkEhga7MCXOiytjPEgtOcWTP2ei1el56ZpYrh3oe0GfV3+4VIJR/8243MT8E3GuZmRNs1osh+wrrDezrvJxtOH6wX4kBzmT4Of4t0+KVTd38vW+kyw5UIJUIkGj1WMhlSBgYDZ0dptP8sgtpNw9JoS7xgRja3X6ZtOt07NwaYqoQncu3Do8kHXplf1KoH4xP4lJMQa9cRPHGqDglSl9Lsm7dXqK69rJrWnh4ZXpffpGAkR6KBgc5Gz0NlQQ7qGgubOb0W/uxF5+mnPvaGvJizNiuSrOC6lUIioDmvw6B/g58vqsOCI9Hfp+oT7w+sZcPttdxFNTIrnLGGhmf3oAqUTCyruGsr+wgY92FohToD6ONsxK8uWTnYXiDcnH0YbbRwby+sZc8YZlYq/0hCAIbM9RcefSFELd7Ql0sSW7yjxr9lZaiybGYJDuvWlogNlnOvn9PWL5ZM09w0UGSlZlM9M/2sddo0N4YnIEJ6pb2JhZw4bMaorr25FIYHCgM4l+jmzKrqG0oYMYLwWPTIoQS0VwcYH3QlhS/6u4HMAvMWqa1X02I2cM8CbY1Z6sqmYxaJu+JEobSwYHOjMkyJlWdTff7i9BJwi8fAmzkUsBU0aTFODEkZON7MytY2NmNdUtvYdxFNYWvHZtHFNivZBJJVQ3d/LS7yfYkFnTx5HNkRzozJGSRh68IoyHJ4YjCAL3/nCMjVmGfc/MnJcvGMLwEFfmf32YvQX1vTLzM9Gl1bN4bSarUyu4Kt6Lt+ckUNrQwZXv7xG3UdpYotcLvUoFZyLOR8mqu4dhbSnjVHsXo9/cybAQFz6fn8Svx6t48bcTNHd2s3B0MA9cEXbOG/EPh0t5em0WNw3156UZsUgkEgRBIP7fW5gxwJuXr4kDDMNc8S9s6fc4j00K5+v9JSwaF8qLxonMNfcMx9nOykzAKbuqRWzagokJ4iAa+FpIJcT4KDle3sTUOE9emhHbb1P4uXVZLDWWet6YFcd1g/37HZkXBIH82jY2ZFazKauml4CXVAIvXB3DzcMCLzrwVjd38v7WAlYfq2BClDtHS079o4I3XA7glwR9TUbG+yqJ8FDg7iCnSNXO0ZJGURHPTSE38q+dSQ5QeXnpAAAgAElEQVRyJtxdYZYZVTd38uCKdI6UNHLtQB9emhH7h/W5/yyklZ3i9u+OntUk4Hxw6/BApid4k+jniFQq4e7vU9lXWM/ux8aiatVw/ReHxAlPV3srFowKZkNmtWjI29Oh/r3rEpiZ2PeNr7G9i7u/TxVvEA9NCEMikfDgijTWHa8i3kdJZmUzEonBUOG6Qf5szq7pNel5JmYm+rDWOPCy7I4hopDXqfYuXtmQw+rUCgJdbHl1Zlyf1FGAnXkq7lySwugwVzMp1+rmToa9toOXrollvjHzXXqwpF9xKkcbSyQSw7COhVTaSzkRDNTMcA+FYWrRx4Hn1mUzKsyV7+8wuNI3tGlIetkwf2daZUyP9zpnTf+XtEoeWpkOGFYBlU2d5zUyX6hqY1NWNRsyazhRfdo6bky4G5mVzecdeNXdOrbl1PJTSgX7CurQCwZzhVaN9qJty/6bcTmAXyT6mowEQ+nA29GG+laNmL35OduQHOhi0BEJcibQxfacXwStTs+HOwr5cEcBAS52fDgv8axTen81aprVvLEpl7Vplbgp5Dx+ZQSzBvqi1ur46Wg5L/x24pzHmJfsz7UDfUjyd+q1tC9UtTLpvT2Mj3QnvbwZC6mEVXcPQ6PVcceSFKqb1LwyM5ZuncDiteasi5Ghrnx966Bek34Fta3csSSFmhY1b89J4OoEg277rjwVt317lKQAJ1bfM5zN2TU8sCINTR/iWUtuT2ZosDNFKkMZ5pGfegdHMHDIezZNG9q7WHKgBFWrhjlJviyeGmXWeM6uambuZwcJdLXjp7uGmd2wdxrPz8Q0EQSBK9/fI8oe9AWZBPphX/LlzYMYE+5m5iB1z7JUcmta2fnoWMoaOnh09XGOGHXFNz80mgjP81fVzKps5qoP94m/5740+YJKgCX17WzMquHb/SdRtWrOGXgFQSC7qoWfUspZl15lJuUwMcqDlNLGP2Rb9t+MyyyUC0BfzcgzodHqkUklTB/gLQo/nY94/5mwkEl5eGI4Q4NdeGhlGtd+coDFUyO5ZXjg3zoyrO7W8cWeYj7dVYROELh3bAjWljI8ldZsOVHD8iPlfZoAn4khxhVIiJt9n5zzUHcFI0Jd2ZZjYOpse2Q0fkb+9br7RnDf8mM8tjqjz8xuX2E9I17fyU1D/blxSABuCjm78+tY9MMx5JYyVi4cauY089PRcgQQbc5C3OwY4OfYpzHC6DBXJBIJ0UbJ0ZmJPjy2OoPVqQaJgLdmx9Ou0ZJrLEH8lFJOR5f5MNWq1ApWpVYwJdaTR6+MQG4h5fbvjuJgY8k3tw7utdrKNzaQIzwUtGm0fLvv5FmDt4+jDQ1tGu4eGcTMgT4Eudoz8KWt+DrZUNbQwYu/Z7NiwVB8nU5PpYZ7KNiUXcNXe4t5d2s+sh7XmEHG4PwDeKyPkmevihbFtCKf3UTmC5POW5410NWOBD8lWqPZ77LDZQwNcekVeBvaNPySXsWqlHIznRgwyCnMHxbAxzuL/jTbsv9m/L/NwPvqXP+UUs7aYxWUNXaaNRrBUKuL9nYgOdCF5CAnBgU69zvqe7Fd8cb2Lh5ddZwduSomRnvw1ux4UZ/5r4IgCKzPrOa1DblUNnUyJdaTxVOj0AsC72zJ59fjZxeMempKJDHeSuZ/c5gzL61Ef0fGG2mK0V6GIaKGNg0j39hJZ7eOaC8HNjxozqDo1ul5ZX1OL9ogGEa82zVaduSqROYDQJSXA1/dMgifM1gSUz7YC8Dn85P4YFsBv6RXYmMp446RQdwxKpgv9xSLJZSkACeemRZldgPIrzWsFuA0H9sEvV6g/FSHIaBXt5JX29JvHyDBV8n0BG+ivByI8FQglUjIrmoWB5yCXe36dZ8fHOjE0ZJTvDij77rxrE8PIJNKeHpqFPO/PozC2pIfFw4Vb4pf7S3m5fU5gGEF88bseApVbdzyzRF8HG3Y/+T4Pl+3L6i7dVzxzm4U1hZmgXX7v8aI9ndnw9maj8mBzuzOr2NVSgXbc2vp1gkkGKWUDxY3oO7WceeoYB6eEM6SgyWXWSh/Bf6bArjpYnlpRgxVTWqWHSqltIeQjqXMwJ1ONtavkwKcznvc9490xQVB4Ot9J3ljUy5u9nI+mJfYSy/jz0JWZTMv/naCIyWNRHoqWDw1ihZ1N1/uKRZr0H3Bx9GGb28b3MvUoqS+nc/3FLHiSG/BKDeFnEEBTmLDMs5HSXZVM1seHk2ou/lx9HqBYOPYd088OSWSu8eEUFDbysT3Tjcmo70cWDQ+lEnRHmJ9+VBxA9d/cQiZVIIEsJBJuGVYIHeNCcHZWOK46/sUDhY18K9JEXy0s5C6Vg0zBnjz+ORIfBxtWLT8GL9nVONgbYFMKmHtvSMIPIfTUbtGy+K1maJLz8XA1d6KAX5O7C2oI8zdnpKGdo4/f6VIW+wZrJ5YncH23FpSnplIZkUzN319GHu5BSsWDOXwyQYeMwplJfo78vM9w5FIJKi7dUQ+uwk4rYtyPvhiTxGvbshl+Z1DGBrswlUf7hPr2j1ZQ/2hr0RndUo5q1IrKK5vp65Vg4udFTMTDf6tPx4tZ21aJeEe9rw5O+GSKH7+r+ByAO8Du3JV3PbdUdHXMcbbgUnRniQHOTPAz/EPjfweKKrn3h+OMTbcnZ15Kt6aHc/EaI/zLotkVDRx/4o0yhs7eHhCOPeOC71gnvH5QtWq5u3NeaxKrcDZ1oprB/qg7tbz/aGzm28k+Cr5bH7SOW2yVK1qvt1fwrKDpWK/wDQBaUKEh4K82lZC3e3Z+vBos89pxZEynvo5k1kDfdmZpzJjU6Q/N5H7V6Sxt6Ceecn+BLvasfRQCeWNnfg42nDzsACuiHIXeeMAtwwL4L5xobj3MDUub+xgzFs7uXtMCI9PjqRNo+Xz3UV8YZy8HBbiwq68OhaNC2V2ki8zP9mPk60VP987vM9VkiAYBlyyKltEcaqLxZRYTxrauzhyshFLmYTJsQatlr5gCqrpz03E0daqV516oL8jx8qauGt0ME9NjRKfN/HKz+R394emDgMTZ2CAE9/dlgwY3vNz67LF6+a+cSE8OininNd8q7qb3zOqWZVSzrGyJmRSCeMi3Jk7yJdxke5sPVHLc+uyaOro5t5xodw3LuS8FDT/SbgcwPvB/cuP8VtGNfeNDeGxS2z5dOX7e0TtCTAM6rgp5Lgp5KKGibtCjrvxZzfjzy52cmRSCa3qbhavzeK341UMD3HhvesGmDmp/1FotDq+3V/CRzsMxr59uZabEORqxzPTorCUSXloZTo3DfG/4GZRi7qb5YfL+Hx3kchmcVfImZnow+78OrNl+PyhAYyLdCPUTcG0D/cS4+3AigVDqTjVyTUf7zfzvrSUSXhlZhxzB/kBhrH+7Tm1vLs1v1fNdN8T48xqwiaYdD/2Pj7OLIBVNXXy1uY8kXny1JRI7hwVzLGyU9z45WEGBjjy3W3JohZIVqVBw/pEdYso6WrC7CRfyho7xKbhXaODeWhCODZWMrPhpDMhkdCrHDUv2Y8IDwURxuapqVG6I7eW279LYfXdwxgU6Mxvx6u4f0WauN/2f41h0fI0PBzkYuAFeHhlOmvTKnl8cgT3jg3t8zx64tUNOXy5t5gND4wiysuc+77sUCnPGDVihgY7882tg81mBMCwqjp0soHVKRVsyKpG3a0nzN2euYP8uCbRBzeFHFWrmud+yWZTdg1xPkremBVPtPf58+z/SbgcwPtAT2nWS925PlBUz51LUujo0mFjKWPWQB/s5BaoWjWoWtWoWjSoWjV9NkhlUgkudlZiYN+VpxIHUW4Y4s+cJF/cHaxxs5ebMQzOF4IgsOVELa9uyBF1wvuCk60lr10bx9gId6wtZZdkYEKnF7jr+1S25ZxWqwt2tWPh6GBifZRittizpg1wZYwHQa52PDklirKGDka/tVP8v4Wjg1ncI5tsUXfz1d6TfLPvZC/H+VFhrtw+Iogx4W5iU7WzS8fQ17YzItSFT25M6nXOh4sbuM44qm/CtHgv9uTV9eKPyy2kRHk5EOvjQJGqnYPFDUyN8+TjGwaKmWhzRzevb8phxZFy/JxteHpqFHcvM2Tpvk42ojv67CRf3p6TQLtGy4ojZWLtOsTNjob2LjP/Ug8HOZGeDthaydiYVcPVCd50duvYeqKWBD9HFo4K5tl1WVhIJXgqralv1XDgqSvE/U2ZukQCJ187exml4lQH49/ZzdUJ3rw9p2+X+Z3G1S0YHHM2PWRoTlec6mBNaiWrj5VT3tiJQm7B9AHezB3kJ8omC4LAz8cqefH3E3R263h4QjgLRgVdsAzyPwmXA/gZ+DOnt0zHev6qaB5cmc4NyX5syq7t89jqbh11rYZgXteqNgT4FmOQF3/WmBkA94STraUhkzdl9A5yQ1avsOZgUT1JgU5MjvESy0Erj5bxwfaCfh3mpRJ477oBXBnj2YsS9kdHlgVB4Mk1maxMKefpqVHcPjKITVk1fLa7iMzKZtwVciQSqG3RYC+3YESoi5kkLRiCV19CSr8uGkGouz3fHSjh893FNHd2MyXWk7vGhHDz14eJ8VYyItSF7w+VUtuiIdjVjltHBDJroC+/Hq/iqZ8zezUm2zVacqpbmP3ZQeDszcUQNzs+vSmJYFc7LGRSDhc3MP/rIyT6O7L0juQ+l/yHihu46avDZsNKpiYlmMu8ljd2MOpNw02r5PVpCIKAqlVDbk0reTUt5FYb2DD5ta29PE2nxnkS461EIoE3N+WJz2e8MEns6/TsM5xLmOuRlemsz6xm56Njz1pu6ak5DoZry3Rmw0NcmDvIr9d1VtnUyeKfM9mdX8egACfemB1/Xg3RfzouB/Az8GfqJ/Q89rT/7MXaUsa/JoX/oWNrdXqqmtTc/2OaqCsya6AvckspqpbTwb+2Rd3v2PjZcOfIIBaMDjYG0UtfaxcEgVfWG8oUZ/J9BUFgX2E9z6/L7hUgXeys0AsCz14VTWN7l5iFng3jI915xKjJbVrOm0oKXVo9G7Oq+XZ/CenlTeLwB8APdw4xm14srm83K12MDncj1tuBcA8FKaWNrEuror1LK37eH85LZHqCQYFv1qcHcLW34ud7RvSrkLi3oI6FS1P7NL64a0wwT005vapobO9i4EsGx8L+Go3Nnd08+0uWyBSaEGWQ8M2pbu3FqgLDpOvzV8cQ6akgwlMhTnxue2QMoe59B83sKkOmftfoEJ6c0n/JURAEjlc088bGXA4WN4jPO9tZ8euiEb3KWHq9wA9Hynh9Qw4C8PiVEdw8LPD/rVXambgcwP8mfLCtgPe353N48RW4Ky5N/XpDZjVPrMkAAV6bFcdV8d7i/+0vqOe+Fcd4cnIkXo42LD9c2iuLPRusLQ11eneFtVinN/wux93BWLNXyHGytTrrl+vMG6RJOyTJ35H3r0+kUNVGgaqV/No2ClRtFNa2ihrnZ+KWYQE8PjmSB39MZ1tOLROjPfo1DABYc88wBvg5IZXAxPf2YG0p5bdFI8Ubk6pFTVZVM8sOlbEjV9Vrf2+lNTE+SqK9HPhgewHWllIyX7iyl+ZKY3sXH2zLFxUEAT6+YSCvb8qhs0vH2ntHiPS9nhAEga/2nuS1jTmEuSv44uYkxry1y2ybpbcnMzrcTfx964laFhh1TLY9MqbXMXfn1/HE6gzq2jTo9AJeSmsO9iiRtKq7ya9tJae6lS/2FJtZl/WFD64fQKSnA8Fudmbv+1wu83WtGtamVbAqpYICVRvWllKSApzYX3g6iM9J8uWla2LFzLukvp0n1mRw+GQjI0JdeP3a+D4/t//PuBzA/ybk1rQw+f29vDIzVjSivRQob+zggR/TSCtrYl6yH89dFSOWSQ4U1XPPsmP4OduQVdlitt8DV4SxcHQwdlYyWjVasVxTd0bpprbF8FjXoulTJ8RCKhEDu9sZpRt3hZzq5k7e3JzHglHBLD9cRo1RR+VM1x03hZwwd3vDPw8FYe72BLvZM+TVbegFkHB62Q3w4owYrk7wZsCLp/2z7eUWvWrdShtLLKQSGtq7GBzoxJAgF7KMmiDnkrSN8nLgtuGBCAg8sSaT/8xLFKc5+0Khqo3HVh8XHX0A1t473IxDboK6W8dTP2eyNq2SKbGevD0ngZfX54j64yZYW0p5aEI4d4wMwlIm5ZlfMll2qIyxEW5mzcc2jZZXjPuHutvzzpwEduSq+M+OAnJe7Hsy8kxa5uOTDauhHTkqUQHSBEuZhBA3e6K8HKhr1bCvsJ4Fo4JYPDVKvCF26/TsyFWxKqWCnXkqdHqBgf6OzBnkx7R4LxysDfIHC5amiA3cAX6OfHLjQNZnVPPO1jzDe5wWxdxBfpc9L/vA5QD+N0EQBMa+vYtAFzuW3J587h0uAN06Pe9syeez3UWEe9jz0Q0DRS72hHd3U6hqw8NBTqtay01DA1idWnFRNf7OLt0ZNfnTP9e0dJJaegp1d+9x9P7gYmfF8FBXRoS4EOahMN4E5GKwOVBUz8KlqbRptEyIchenNPvCt7cNZmy4G106PYNe3taL+XEmIj0VzBnkR5yPEgcbC6Z+sJd7xobw2JWRqLt1rEuv5Nv9JWbslUNPXXFO44yeFmUA4R72vDEr3iyIVzV1ctf3qWRVNfOvieHcNy6U97cV8MF2gyytSWfl31fHcKCons3ZtUR5OfD6tXEsWnGM8sZO4n2V/LpoJAAHixp4bPVxKps6WTAqmEcmhmNtKROZJxseGNUva+Oaj/dT26JGEAxspGV3DiHGWynSCdc/MJKC2jbjpGkLOdUtZh6WShtLpBLMtHHsrGTcNCyAOUm+vbj8YLh5PbwyXeT+mzAhyp2Xr4k7L3OS/6+4PEr/N0EikTAp2oPvDpTQou6+pN5/ljIpT06JZHiIC4/8lM70D/fxwtUxBDjb0tCm4ap4L9ZnVLN4WiQLRoUwNsLtohq1NlYyfBxt0OkFGtu7aNdoqWrqpKC2jaK6tl5aIkobS/FfZqVhAMjJ1hJfJ1sx2//teBW/nTHVqbSxxF0hp0unJ8FXyf6iBjF4h3vY9zlWvj2nlg+3F5BT3dqvifK4CDeqmtTk1RoafZ/vLmJchDuHTjagFxAlU60tZVw32J+5g/xYtDyN9ZnVAIx8YwfT4r24bURQv8Mjr20w1OZNN5z82jZmfnJAHASqPNXJvT+kou7W8+X8QUyI9uCrvcV8sL1AVF1MKW3Ew0HOjUP8uWV4IJuyanj+1yxmGKVzAWpb1HR26Xhzcy7f7i8hwMWWVXcZ6vsmmOrXRXVt/QbwCA8F5Y0drLlnOPO+PMSNXx1m2R1DRGu3Lq2eaxJ9xO1NWuLTE7zJq2np82/R3qVjY2YNxXXtBjMNT8OkaaCLLRYyKdaWMt67bgAbszaZ7Wcpk1Jc34an0lrsQ8X7Kv9Rk5R/Fi5n4H8BUkoamf3ZQT64fgAzBvice4eLgKpVzSMrj7OvsB4rmZRPbhpIoaoNmRQ+3VVsxrY52xejW6entKGDgtpWClSG+nRBbSvFde1mtD4fRxvCPIylD3cFocafFWfYst31fSrqbh1avcDLM2K5cWgAOr1AQ7vG2Hw1p1WqWtXUtmjOaqjbH0aGumInl/Wq+ZsamHWtGnbnG2zltmTXiKWc4SEuRiciN0Lc7Ons1jHmrV0Eutjy9pwElhwoZVVKOa0aLYn+jtw2IogpsZ5ibXjJgRKe/zWbW4cH8sLVMaxKKRcnHuUWUvEG566Qs3zBEELdFfx0tJzH12QwNc4Tb6WNaFtmktY1oS85WX9nW8oaO7hlWABPTInsxbFWd+uIem4TD4w3P1ZPfL3vJC/9foKUZybQodEx78tDtKq7mRrnxY9Hy5kQ5c5XtwwGDCuwqOcMQddE7zStZGYM8KazS2eUEGght9bweLK+XWzuyi2khHnYo9UJvXj5JsgtpDwyMZzP9xRzz9hgs2v2Mi6XUP5W6PUCya9uZ0iws+io8me9zm3fHWFvQT0+TjZ8OG8gA/wc+wzaXVo9pQ3txiZiqxioT9a3m9WofZ1sCDfWpkPd7Qn3UBDibn9Op6CetEwXOzk3fnmI+vauXp6NPZudzZ3dHCs9JfKHLzUmRnmg1uq4Kt6Lzdm17MhVEeBii6VMSqHKkFH6OdtQ3mhgbCy7YwgjwwwBpE2jZXVKOd8dKKGkoQNPB2vmDzMIaD25JoPxkR58Pj9JnJZ9a3MuH+8sMnt9Kwsp/746Bnu5BQ/+mMbIMDe+vDmJhUtT2Z1fh1QC+58c32uy9fbvjvZqtp4rGRj95k7ifJX9Xm/7Cuq56evDLL9zCMNDXSlv7OD6Lw5R1dwpMm92PzaW1akVfLjjtMTuzcMCmDvIjxhvh7PWqtXdOgpVhhJMRkWTqB9+LkyP92J/UcPl4H0GLgfwvxlP/ZzJr+mVpD478U933UktbeSBFenUtqh5aEIYV0R5GFkfbWJmXVLfLvKFJRJDVmcI0oZgbQjUdr2yu/PFmSyUulYN139xkKK6dhZPjWRmoi9ZVc1syqzh57QKnGytUJ2luTh3kC9vzIpHIpGg1ekJfXoj/5oYzqLxoewpqOedLXlk9KHXYmMp7eUidCZkUgm6s3AvZw305brBfgzwc8RCKmFXvopv9pWwr7Be3ObMpqWqRU3yq9sBCHaz4505Cby6IcfMtf3Ei1dia2XBoJe3Ut/WxcRoD7682fw7qtHqiHjGvOQA4GBtwdNnafqdaWB8JlStapJf2c7z06O5bYRB6bHiVAfXfLy/32ncC5WLBcO1+NjqDIrr2pk7yJfrBvuzxejD2lMSoSf+iXrefxSXa+B/MybFeLDiSBkHiuoZH+lx7h0uEOpuHcV17RSoWilUteHnbBDZf3tLPm9vyQcMgxQBLnaEutszKdqDcA8Foe72hLjZ/yHdl75gyvYFQaCyqZOsyhauiPKgqK6YVzfk8uqG0y7sHg7yXsyQp6dGcdPQAGysZNyzLJX1GdU8MTkSF3s5UmPA0guGHsOYcDdyqluYk+TL3oJ6tvSgGHZ267lteCDLj5Sh0eoZEuTMxGgPXl6fw4Qod0aHu5k1Znf1YQG35lgFa45VmD3nfwbNbeYnB7CykPLE5EiivRx4eGW6OAJf1dSJVCLh8cmRzDEOBQHc98MxfJ1sxIB54xB/4PQ8wh0jg5j/1RFx+0cmhvPu1nyemBzJzlwVT6wxsFlenRnXy2w6xM2OfYX16PRCnxo6bvZynGwtya9tRRAEUktPsSqlolfwnp7gze8ZVWx4YNQFBe+OLi3P/JLFz8cMEgQKuQX7Cxv4KeX05xjsZoeXgzVp5U0MCnBib0E91yR69ysrexm9cTmA/0UYHuKCvdyCLdm1fyiAm5amPXnUhao2ShtO1xxlUgkBLrZMivbgSEmjOHL99S2DGRfpfineTp/Q6wVONrSTXdVCdmWzSNszvb5UAmHu9hQYyxWWMgm7HhuHj6MNV324l6zKFoYGO/PVLYPNSjT/mhTB5uwaPt5ZxHPTozElnPoeq8dYbyX3Lk8lrA/2w7cHSrhhiB/xPo48uy5L1P/+6IaBZkFJ1aJm9Fs7mRTtybtzE2ho70LVouHwyQZ+PFoullmAPnnUXVq9qI1tgun99mxEvjs3gaMljaxJrTTrK4wOcxNLT09MjmTmJ/tFGuiBJ8djIZPw7tZ87OUyflw4lJUp5by6IYfJH+zlgfGhLBwdIkorhLrb06XVU3Gqo08HeIlEgqOtFSuOlHO4uJHi+nZsrWTMSfJFo9WLw0C/Ha9i1kDfXnonZ6JNoyW7spnMymY+213U60bgZGdFnK+SW4YHEOfjSIyPA1mVzSxansbDE8P4dFcxi6dF8ukuQw38/4ue9x/F5QD+F0FuIROV1V6Z2XdW1BMdXVqKVO09grSh9FHW2CHWKC2kEgJd7Yj0VDA9wdvIpbYnyNXObHT7RFULi1Yc4/YlR7lvbCgPTQj7w7oS3To9BbVtot9iVmUzOdUt4jCOlUxKhKeCKbGGMe4YbwciPR3ETH9VSjmL12ZyyzdHWDQu1MDSGBvCj0fLyahoMvvibsupZXSYK8sOlXL7yEBxim/FkTK0ej3HSpvIqGiivUtHag8es5VMQpexnr/8cDl7nOqYFO0psksOn2xkTI9hmQ93FKLVCTwyMRwLmRQPB2s8HKyJ81Vy56hgwKDC15ODbkJfglOAeLPqif7cfR75KZ09+fVMivHg2V+yUFgbvp7DQ1zwNrKAZFIJNS1qpFIJ85L9uSLSnX//foK3t+Tz2/FqXpsVx0B/JzMmSs8ArtHq2J6jYlVKOSeNU6/OdlbcPTaEaXFe2Mkt6NbpzXTfR4ebB9HOLh0nqlvIrGgio7KZjIpmiuraer3/MeFu3DkqiDgfZZ+KjRkVBgs10+PwEFdivJVmz18O4GfH5Rr4XwgTP7en5ka7RturPl2gaqXi1OlmkqVMQpCrHWHuCiPzw/AY6GJ33mJWHV1anl+XzarUCgYFOPHBvEQzw4OzQd2tI6e6xZBZG0fN82paxezR1kpGtJcDsT6GQB3jrSTMw75Pt/ieOFjUwJ1LjtLRpeP5q6O5dXhQn5o0ewvquGfZMXFYx10hF+vlFlIJUV4ODPR3JNHficVrM3s545wLif6ONHV0iwFt4ehgFHILFNYW2FtborA2/KyQW/Lv37JJKT3Fm7PimTPIl9yaVtamVYqys2AwenZTyClv7DBrCIOhSfrazHiRhfOKkX7oYmdFQ3sXng5yalo0TI7x5P4rQpn2n32i7jnAsNe2MyLUtZeI1LYTtTy7LouaFjXzhwawcHQwI9/YyeKpkSwcHUJ2VTOrUipYl17JqY5uPB2sUWt1NHV0s//J8b2uBRMf3ITpCd7YWErJqGimQNUm9gxc7eUk+Cqpb9OImvF3jQ7mYSMn/TIuDS43Mf9mtKq7SS9vEl1Xxka4UVDbZqZRYSWTEuxmJ04kmqYTTUyJS4Ff0ip5em0mFjIpb9Pcl/MAACAASURBVM6O58ozRPdb1N2cqGoxK4MU1bWLX1hHW0tivB2MJrmGgB3oYnfRWuWvrj/BuuNVnOroFv0r12dUsS2nFjeFNWllp8ioaDbjmkslhvp3cqAzS25PNptAXbQ8jesH+/HN/pPcNjyQybFetKq1tKq72VNQ16e5xJmwtpSe12BST4rghWLv4+NQWFuI2bytlQyNVodeb9DR/tekCFalVvD46gw2PnhasnXGx/txsLYQTYnhdMM43teRtzfnseRgCY42luKQTYy3A9lVLVjJpEyM8WBOki+jwtw4VnaKOZ8d5NtbDaU106oqs7KJJ9Zk9jpnMGTV8b5K4nwMr2dlIeXfv2WzLr2KCA8Fb86OJ+H/kdHCX4XLTcy/CM2d3YaM+gwedXWzufpfbYuGQYFOzHP3I9RdQbiHPf7Otn+6ZOY1iT4k+Dly/4pj3PV9KsGudqIAU3ZVMyU95GU9HOTEeCuZHONJtLeSWB8HfBxtLumo8yOTIkgOcuHOpSk8sCKNB3poV1vJpIR72vcKkj5ONtS2aBgY4NQreJsy95FhrixansaocDeRCtjY0QWU8+PCodS2qPlkZxF5tad5ydPivPj4RgPtrkurp01jCPytai3fHShhdWoFMqmEZ6dF0arWsiq1QqyFO1hbEOpub7xZaEXpgP5gUhY0wbRq8HKw5rPdxfyeUS3+Lfbk15Fe3oS93IK8mhbU3XoKaltRGFcH8T5K8b0/e1U0LZ3d/GzULwdQtWr499UGCQKTbrhOL2D6K9723VES/R05UdXS5w3pxRkxvL4xF51eYOHoYEaEuorWe8+vy6a5s5sHrwjjvnGhFyVvfBkXj8sZ+EWiuaO7hxiTgfmRX9tqNm5sbSkl1DToYqTmpZae4rPdRWcdc77UEASB6mY1WZXNYhkkrazJzBQBDM4vsT5Kor0diPF2uGTiWz3Po+JUJ2nlTaSVneJYWRMnqpp7lRkAVi4ciqpVw9tb8iht6CDBT0lhbZuZ4FVPV5lzqUsKgsCk9/Yg7yFsJQgCu/LqzHjnE6M9eGNWvGizBrC/sJ5bvjnCkGBnvr01GQuphPe25fPhjkIS/R357KYkM6ONji4tN311mOMVzXxw/QAG+DlSXNfO7xlV/JJWZda47Inxke5UnuqgoLYN+XnQH02QSsDaQopaq0duYdivJ33SXm7BvGQ/YryVZFY2k1lhWFn1LDUlBzkT76Mk1kfJ02szcbS1EleHJa9Po75Nw01fHeZkfTuvzoxjc3YNW07UEu+r5M3Z8UR6/v80WvircLmEcpE41d5FvjGbNgXpAlWbGe3NxlJGmIe9GKzDjXVqHyebXqWFulYNya9uO+uU3B+BXi9Q2thhFqyzq1pEzq1UAiFu9oYyiI+SmmY13x4oQW4h5aUZscxK8j2v1zkfOd6OLi2ZFc0cKzME7LTyJvFzs7aUEu/ryEB/JxL9HUn0c8RNIeejHYW8szVfPGaYuz2zknz5Yk8x/7k+kduXHKXLmCVOi/Pk4z4MGPrC/sJ6bvzqMG/PSWB2j/eYWtrIrE8P4ulgbZY13zo8kAWjg2nXaJn16QG8lNasuns4UonBvWZbjoq5gwyqej0bxhqtjjuXpLC/sJ5PbhzI5FivXudypoenCVNiPTl8spGPbkjE2lLGtZ8c4IPrB3BFlIe4EnhjYy7bc1W8OTuebp2eNmPG36ru5vDJRnJrWhkZ6srsJF8eX5MhflY9MdDfkXhfR+J8lLyzJQ8HG0uRL/5LWiUPrUzng+sH8OCP6QAce3YiznZWNLRpSHp5m3icJ6dEcufI/99GC38V/rQSikQimQ3cJQjCxD96rEuJC9X7bmjTmLE98msNWXVPOpSdlYxQDwVjwt3EIB3qbo+Po8156xabzHy3nKj9wwFcq9NTWNdGdmWLgbJX2cKJ6hax2WcpkxDhqWBilAexPg7E+CiJ6sEEMeGOUUE8uCKdf606zv7Cel66Jha7c0xaxvsqzQ0xCuu554dj3DDEn2d+ySStrIncmlaxdh7kaseoUFcSA5xI9HMk0lPR64uvalH3oud9cuNAtueqxNeZkeDNqlQDl9ikbHc++O5ACc52VlwVfzqgCoLAG5vycLWXs+PRMbRrdFzxzi5ajCWT7w6UiNtufHAwDW0aFixNobShgxdnxDB/aIBZOUmr0/PginT2FtTz1uz4XsHb5DTzwm/ZZs9/fcsgVh4tZ2NWDQ+MD2V4iCvvb8tHIjFQC+3lFtjLLfBSwpQ4L7bnqkgOdCbAxZbaFg3HK5rYmFlNUV0b1hZS9hXWmw0ZhbjZ4WxnxdGSU0gkMCrMjXuNvpK5NS0sOViKTi/QrdPz1uY8Yn0cmB7vzdGSRpYdKuObfSe5PtmPxWuzzM47wqP33/Ay/lpckgxcIpFsPZ8A/ldm4P057rx8TQyONlZikDZl1j2nwhRyC1HbwzTsEuahwFtpfUnqv1/tLebl9TnsfXzceeseq7t15NW0Gih7Vc1kVzaTW9Mq1ixtLGVi6SPW21AGCfdQnHdNUqvT8+GOQj7cUUCAix0fzksk1kd51n1MWicudlaUNnSIsq/2cgsG+DmS6G/IsBP8HM1KEn29t6/2FvPJriK6dXpuHR7I8FBXHv3pOFq9wGc3JTEsxAU4rYttwrncY8AgvTv6rZ3cNzaUR688PeG3K0/Frd8e5d9Xx3DL8EDAkEE/vTaL1anmgzumaU1nOys+vmGgeD4m6PUCj6/JYHVqBc9dFc3tI4PM/r+uVcPitZlsPVFLpKfCTBMk0MWW5s5u5g/9v/bOOyyqO/v/rzuFoQxFepMuKAoKYgNbEo2JMc2YYjRRU0wxZeMm2e+m7Sa7v/RkN1E3phmN0ZjE9G6NRrFiL4A0EZQm0vvM/f0xBYaODCr4eT0PD8PMneHegTn3c895n/MONFv7vfF7CnoZvl+QYPEa7/2RzrLtmThqVNjaKC2uBANc7RkT4oaDRsnapBxevGEwT3x5kH/fNITZowMpqqjlpR+P8cPB04R6OPDqLdFkFVXy1NpDbPrrBDYeL+D//XKcVfeNIiHMndMl1cS/ugkwLF5k4G/XDOT6ob7cvWwXqXkVvDc7lqsGWb8xTWDJRStiSpI0H5gPEBAQ0NO/zkx8qDuL74xhwap9BLo6cOR0KRq1godX7bfYTpIgzEPLlQM9GervzND+LgS7G1rIe8IFfumWdLyN+dLfj+Zx37iQFlcGFbUNRiVIoztMU+mWk62KIX7O3D0m0CzdC3bXdmt/VUoFT0wOZ3SIG3/5Yj/T/5fIM1MHMic+qM0AGR/qTqSPk7kxxoSznRobo0KjsLyWzKJKlAqphQGALMv8eOgMr/2aTG5JNVdHevHM1EEEuRt0y98tSGDe8j3c9fEuXp5uMC0eG+ZuoRL59UgeU6Napima8umOLBSSZJ46CIaA+8bvKfj3s2PmyMb/S41KyavTo1oEcNN7b6tSUF3fgCzL5vdFlmVe+ukYa5NyeGJSeIvg/fOhMzz33WEq63Q8M3UgNkoF//yxseEn62wVsQEuPD4pnNGhbixYtY9zVfXEBLiwZHMah3JKOJxTyukmhfDy2gYmD/Yi2s+Z9KJKrhroycSIxiatSZFeHDxVgr2N0tyA5K7V8O7MGG6O9eO5b49w69IdRBlP0nuyilm8OY0J4R4khBmuWpsWNGMD+/HyzVHmBceqe0dz97JdPPhZEkvujOXqZmomwYWhz67ATbz041GWbc9CKUErtbJ20agU2NsosbdRGb833rZr9nPzxxya3taosFMbtjmcU8rCrw7iYKPEx9mOe8cF8+RXB5kWbZC7HT1dRtbZRisvd62GKD+DtnqI8bt/P+sqQZpTXFnHk18dZFNyAZMjvXhjRnSrjRhNZXurdmUzJz4QhSSZO0UziiotcrCejhpjnUBLRa3O3J4e6ePEc9MGtdq0UVpdz4JV+9iWVsTDE0N58uoIHvwsydwuH+LhwLq/jG/zUr6ytoHRr2xkQrgHi5sMdvrp0GkeWb2ft28byvTYxpy4LMv844ejfLrjJAlhbmYnGRd7NQ+MD+WznSfJLalmoLcjD0wIYVq0L4s3pfHOxhPcOzaY565rNDo4V1nHCz8c5ceDp4n2d+atW4cS5qnl2nf+RJIkMosqiPJzJsRdyxd7DfLG64wjgJsS7O5glO05E+zuwL0r9vLs1EHcPz6kw7/l9Yu24WKvtpAdgqE+8fa6VPMURDAsZn55bBwDPLUs257JW+tSzUH8jycnmk+sTf82c5bt5khuKYvvjOWaISKI9xTnXcQ05rhdm92dIcvyhibbXJIBvLnr/Lt3xDAswIWq2gaq6nTGr8bb1fUNVNbqqG7lMdPt6jodlXUNLbZpbiTbXXycbRkR5EqQmz12NiocNErjScDyhGE4QSixVxtuW0vGJcsyH2/L5LXfkvHQanhnZgwjmsyc7owptE4vc6q4ypymSiuo4M8ThS2GVjnaqgypKg9DJ2mop5Ywj8baQr1OzwvfH+Xz3dlMjfJmTKg7z3/XmI997ZYobh/R+tWdyRPz64fGMDzQsP/1Oj1X/2craqXEr4+Pt7hyMaW3pkZ5k1lUxfEzhlZ2tVLi3zcNYXqsPz8ePM3SLekWM7GvH+rLu3cMMwfvDcfy+fu3hzlXWcfjVw3gwYmhqJUK/jxRyF0f727hTNQan94zkqH9XSyuXGRZJvKF37lzVADPT4ts9/lgKLjuyjhr4UDflMM5pVy/eJv5579dE8FvR/I4mFPK5EgvJGDdsXymx/jx9u3DWjy/rMYQxA/nlLJoZgzXdnA1JDg/elSFcikG8J50nW+Nuga9Obi3F+gNjzXw69E8ThgDgFajItjdAbVSanLCMGxXVa9rtUW7LdRKyTLQNwnuhpOA5f3m2zaNjzXdLr2wgr99fYiiijr+Ojmch68IQ6mQulwkrqxt4P0t6by/NQMZuD7al8mRnpwuqSGtsDHAN61F2KmVhHo6EOZhUPhsSS1kT9Y5/FzszBK3of1dKCirYfOTE1t0/pmkg7ZqJT88kmAOrp/vzubv3xzmg7uGW1z6/3bkDA+t2oeLnRoZwwlo0cwYYvr345HP9/HniSLmJQTx7NRBKCSJh1YlmWePO9upuXdsMDfH+PHOxhOsTcohxN2Be8cFo9PLHMoxyPea6s4BvJ1smT06gMG+zry76QQHT5Wglw1O8v9rQ2FzxZt/MNjXyeKKoi0WbzrBm+tSOfrilDYL0827LsEwrtZDq2HB6n3mhqC2zJTLa+qZ+8keDpwq4Z07hll4tAqsQ0+qUCYBcZIkzZBleW13X89aNJ2vAI058Z6ar2CjUmCjUrTpQN6UxPQiPtuVzWNXhpmLVm3tkyzL1NTrW1wNGE4QlrerW7liMN0uqarjdInlY13tInxrfSpvrU/FRqkg0M2eX4/kYa9OM54EVNirDSmjN35PNlwdqJXYqpX8djSPramGKX8Brva8eMNgwjy1OGgMJwmNSmEOrsWVdeZBXaagvjuzmO8ONM7maNq9qlZInCmt4ZlvDvPy9CiLIJ6YfpYTBRW8eetQ8+vX1Ot4Z8MJYgJcmBzZWHzbl32Ox9ccQJYNNmFhnlo+vDuOYGPa4JO5I3j5l2SWbc8kraCCqVE+rD+Wz/hwDx4cH8J7W9J5e30qbzeRQGYUVfKsUbnh5mBjzh/7udhxxUAPVu3KZtOTE8wje0cEuzL0xXUgyxa68uZ4OWnI76BRyETTmSjR/i07JI+dLmtxH8A3+3I5nFvKklmx3PnhLgCLvH9THG3VrLhnJPM+2c3jaw6gl2nXQ1RgPbodwI2plJburReZ1laB8aHuF304TvMrgdGhbu1eGUiShJ0xl+7Wyut1B51ebvVk0Fb6aEViFueq6qnT6cktqWZEkCtVdQ3kldVbXH1U1enanK+dXVzVwrBBIRlW2/bGgG6nVpqDu51ayagQN/TGZqTcc9UWAdxkwvvN/lxz92GkjxPR/s6s2WPIK0+MaBxYtXLHSfLKavjP7Y3pjpNnK7l/xV7zCW3SIC/+c/tQC3chlVLBC9dHMtDbkae/PsSfJwwyPQ+thn/8cLTVoVUAT02J4OYYP3ycbfnoz0wOnCrh47lxLNqYRoCrvcW8da1Gxd1jAvlkexYrErN4aGJoq81UXk62FgbK7dFeAK+p1zH13T/NP7trNZyrqsPJVsWW1EKzpNHX2ZbTpTXsyz5nTkM1R6tRsXzeSOYt38Nf1uxHr5ctLNkEPYNopb/AXOgrg/ZQKiRjO3bnfDr/MimctIJyHlm9n+S8ciK8HXny6ogWeffss1W89NNRs5/lI1eEMTnSi+p6XRfSTDoqahsoLK9t8VhHHDtj0MObiGvSfGJi3vLdRPu74GSrsjBNdrBRMiHCgw3H87G3UWGrVpJfWkO6Mc2zsZkzTtM54T7OtobZLGolH2/LZM2ebN74PYWDp0p4YEIoq3dnExfYj4HeTiTnlRHh1XL0rSmtplEpuX/FXtbMH9NCt29qOmprRdyUAFfDnJq0ZieYPVnFFrPJAYoqaokNcCGzqNJ8dTg61I2nrxnIX744wBu/p7Bm/pg2f5eDRsXyeSO4d/leFn55AL0sWxSIBdZHBPALzKV6ZdBZwjwd+W5BAv/++RgfbM1gV2Yxi+6IIcDNnvKaehZvTuOTbVkoFRJPTApn/vgQq5pF6PUyNQ06Yl5a32oK6PlpkdjbKPn7N4ZhTCaT3ubU1OtbbQSqrNNZFEi7gqeTLf/84ahRfaRi3AAP1h/LZ53xCyCzqJKv9p4ivbCSfvY2HDBK/extlEiSxLa0Iu4bG8zIYFce+CyJhV8eYMmdsRaNYp5OttQ16Cmtrm9VHdQUG5Uh3WUK4JW1Dbz+WzIrmlic+fezJeecISWTVVTFw1eEotPD4jtjeGT1ft69IwaAnRkdN07Z26hYNncE9326h4VfHiQlr9w87gDar5MIuo5opRecN78cPsPfvj6ETi8zrL8LKXnlnK2s45ZYf56aEoG3s3VnqTRl7GubyDlnSKXcNMzXnCO/Pa4/L1wfyehXNjIxwpNFMw3Bp6ii1uAT6edESl4FD04M5dVfk9t8/ebYqZVm1/uYAJdWUxijQ1zR6WWDkqneeNVQq6O8tuUJpCO0GpW5oxZgeGA/c6DfnFJIXYOecQPciQkw3O9gPGm0JmNd+MUBzpTWMCHCg83JBZytrMPZTm022jAR5unA7SP6t2qCbXqvMl6e2qmu45p6HbcuTeRwbhnzx4XwzHWDelxI0JcRs1AEPcKa3dn83zeNo0ebzjrvSca/vhmNSsGJggpenxFNTb2OF743tKibAvrXD8UzPNBQnlmweh8/HzrDtGgfTp2r4uApS/9M06RFk3pHIUlkna0kraCixSRJE7EBLsyJD+KXw2f4/Wg+sQEuLL1reIu8dX5ZDaNe3sjNMX4EuztYFDqvHOjJ1Cgf9HqZv31zCFmG+8cFo9NDdX2DxfjbmAAXqmp1LZQs3cVWraC2Xo+jrQqVUtFqgL3lvUSSTp5jyZ2xXBfdOalgTb2O297fwaGcUm4Y6su2tCIRvM8TEcAFViW9sIKXfz7OxuQCfJxt0agUZJ2tItxLy+I7YwlvJb9rTSa+sZlofxf2ZhUT6evMR3PiWpxMFk4O51BOKRuON3pkKiQI93LkbGUtheV1zBjuz79vGtKm+UBheS1T3/2zhWenm4MN56rqaK1WmxDmxo3D/AjzNMgfV2zP4q31qWx+ciLB7g688stx3t+aQbS/wX3GzcGGeQlBfLI9iyh/Z5bPG2l+rQadnnnL97Aj/Swr7hlJgtFBftzrm3n9lmhmDPenpsFYQ6jVUVXf0Hi7roEfDp7mpyaNQdcM9uL3o/nmsQdhng64OWjILKqkoLy2TUPhXRlnuf2DnQS42rP16Ss68ycCDEF80PO/ISPMiruDmAcusAolVXW8s/EEK3ecxFat5P+uHcjc+CBs1Uq2phay8MsDXL9oG/+8YTB3jGjdMd0aKCQJGRgV4sa3+3N5e11KCyXI2+tTCfVo7B5cNDOGqwZ5cuBUCY+s3m8u1O3LPtd6F2hVPbM+2mkO3h6OGl6dHmWe/VFTryOzqNIsd/zx4GkyiirZnnbW3MHZlOXbMwnzcmTlzpO4azV8vyCB3ZnFvLcl3Ww8vT2tiPyyGr7dn2vW2S+ZFcuM9xK5b8UeZo8ONM9zyTdaqxmuGlTQxNf4bEUtL/54zCJ4v3/XcKYM9ubFH4/yyfYsHrkilCenDDSnNpoWLpu/H6arqta8QNtjX7ZBJRTt5yzMinsAEcAFnaJep+eznSf574YTlNfUc/uIABZODsfDUWPeZny4B788Po6FXxzk798cZltaEa9Mj8KpkyqXjjAZ5x7KKSWjqJIMowUawLub0gh0azkYLC7QlcyiSu5JCOb6ob6dlnFW1TUw7vVN5gLoDUN9efGGwWZDBABbtZJBPk5mt5wnJodTWG6YWHjgVAmDfJywUyvYZ8yXr03KMc8zr6rTEfOv9eYmJRP1Oplxr20mPtSN9/5I573ZscSHuvPIFWE8vuYA3x3I5YEJobg62LRqGmGaL/PPH45SXlPPE5PCuXtMIDH/Wk9aQQWOtkV8f+C0OVg726stct5tvR/vN7GMq6nXYatWdliQNL3Xblobwry0/N/UgSIHbmVECkXQLrIsszmlgH//fJyMwkoSwtx47rrIdl3K9XqZpVvTeWtdKr4utiyaGcuwLtpsmYxzTYOcDuW2bpy7cHI4b69PZdIgL56fNoiJb/5h3sbH2dacv9797FV4Otp2qoO0uk7HoBd+Mz/elbwvGCYaPv/dEb7ca5AYajUq9r8wGZVCIjW/gin/3Yq7VsPkSC/SjU1L55oVFE2olQbz4p8OneGJSQP498/HGezrRElVPSEeWj6a03hVnV9Ww7PfHmHD8XyG+jvz+oyhRHgbUlmjX97IAE8tR8+UWRQo712+l4VXD+D+cY1BuLXAnJhexNxle6jT6Xl26iAG+zl1GIxN7/VLPx6jv6s9H94dJ1Qo54nIgQu6TEpeOf/++Rh/nigixN2BZ6YO4qpBnp1OiySdLOaxzw+QX1bD09dEcN/YkFYVDLUNhlG5B3NKDU7nzYxzPRwNxrnR/i5EGf0YZ324i2B3B5beNZy/rNnPltRCbhzmx2c7T7LuifHcunSHcb6NYcU7boAhFdHR1UBaQQWT3t5i/nnPs5MsrjI6i2lC4SfbswDMo4NNBhIfz4kzp2LqGvSEP/crYZ5a5sYHkVZQQXphBSfyK8yrbFP++JfDZ3h41T7AUHj96dFxyLLMV3tz+NfPx6hr0PPXq8O5J8HSaGH2R7tIL6zgrduGdnr8QXO+2ZfDwi8PIgH9HGw6vZK+bekOlAqJz+eP7uzbJ2iGyIELOk1RRS1vr09lze5sHG3VvDAtktmjA7s8KGt4oCu/PDaOp78+yMu/JLM97Syvz4jmbEUdh3JKOGS090rOKzMPdnJ1sCHKz5mrI72I8nch2t+51bZySQK9cfFx9WBvvjtwmuWJWdww1JcQDy2PXBnGi8aRrS9Mi+TlX45zy/8SWTZ3RKsz2PV6mU93ZJnHvEb7O/P9goTzzuFLkoR9E/37jUu2s3T2cLMe27QyhsY88VNTIixMphPTi1iwah+zjXPCR4e6kV1cxR0j+rNmzymO5JZxqriKh1clcTi3jJFBrrw2I9rc/t+UUA8HDpwqYUyIZT9vV3oQpsf6s/DLg8jA7FEBnX6e1lZFQXnnWv8FXUMEcIGZ2gYdy7dnsXhTGlX1Ou4eE8TjVw2wyPt2BZ1eJr+8hkmDvFh/LJ8tqYWMenmj+XFHWxXR/s7cNy6EaD9novydO22arJAkswJkfHhjq/zchCAAgtwag9jc+CAG+jjy4Mokpvx3K3+7diBzxgSZH//hQC5vrUvlpLFAN3NkAK9MjzqvYzZR16Dniz2nmDTIk2emDuK+FXuZ9dFOFJKEg40SPxc787ZbUwtRKSTim5hEmPLHS2YZcuBjjLnphyaGmJuCoNEceV58EM9Pi2xTox3mqaWi1mC27ONs1+o2HZGYXkQ/ezWzRwV2qSCp1ajIKOy6Fl7QMSKAC5Blmd+O5PHKr8lkF1dx5UBD0GlaXOsIvV4m62wlh41FxubGuQ42SpQKyVwUnBbtw39uH4b6PC25FArDfpte20RMfxdkWea/G0+Y7/v1SB7XRfvwzcMJzPpoJ//4/ihF5bUsnBzOK78c54M/G2di35MQzPPTGjsHz5d1x/Ioqqhj1uhAQjy0fLsggUc/38/W1EJqMZzcVEpDsN2SWkhsYD+LkQbtjVxYfGcM96/Yay6IPjQxlL9dM7Dd/Qk1zUQpqDyvAN7ihBLW/gyfpjjaWjYlCayHCOCXOUdyS3npp2Psziwm3EvLp/eMtFjRtobJXf5QTimHcg1FxsO5pZQbg7OtWsFgX2dui+tPtL/JiMDgGFRV18A/vj/KV0k55JXW8M7MGIvVaGcxrMANAbyp/2NyXjknz1Zx8FQJr06PMhoTpDBlsBdhnlp+fXw8d3ywg0Wb0lizJ5vC8sbxtbfF+fP8tEFWkT6u2pmNfz87xg8wvJfOdmqWzYkj7NlfAZj7yR4W3xlDvU7m6OkynppiqY/uaOTCvIQgFm9Ox8Vezepd2dw63J8Qj7ZPuGHGx9IKyhk7oOsKkO7M8NG2Mc5A0H1EAL9MyS+r4Y3fU/h6Xw797G34901DuGNE/xbONrIsk1dWY15VG/LWJWbVhI1SwSAfR24c5ku0n6HIOMBT26ZDjr2NijduHUpCmDvPfnuYqe/8yeszoi1yv51BapJCWW4sFAL8diSPnw+fIdTDgRnD/XF1sGH+yiTWJuVwx8gAXB1s+PHRsdy4eDvJeeW4a20oqqhjapQ3r0yPtkrwTiuoYEfGWZ6aEmFhFlFcZThZDPZ1YndmMTct2W5Wt0zo4KTZlMT0BfRg1wAAGNdJREFUIlbvPsVjV4axYsdJ9LLMPcv38O3DCW2muzwcNTjaqkgrbH1qYkd0Z4aPo0ZFXYOe2gYdGpX15uIIRAC/7Kip1/Hh1gze22IwEL5/XAgLrggzu74UltdyOLfEImCbGlmUCokIL0emDPYmyt+ZaD8XIrw7b5zclJti/Bja34VHP9/HAyuTmBsfxP9dO7DNjsjmKIxFzKyiSjalFPDYVQPYdqKQd4ypk/dmxaJSKpgc6UVMgAv/3XCCm2L8sFUrSTp5joLyWqYYuxKj/Jz4z+3DrOaB+vnubNRKidvi+lvcn2I0Mn72ukFoVAoeWJnEks3pgGEEbmdoTcf+4Mokcs5V88DKJFbeN7LVIClJEmGeWtILKlt51Z7FlBqqqGlAoxUB3JqIAN5Haa53lmWZt9alsGLHScprGrhmsDcPTQyltLqez3aebGGcK0kwwFPL+AEeRPsbCoyRPk6dDrCdIdjdga8fiue1X1NYtj2T3ZnFLL4zpt1UgAmFJCHL8OmOkyglidmjAlApJPZll+Cu1Zj9GSVJ4ukpA5n54U5W7jhp1i/PHx/CW+tSCPfSknOumqSTrXdjdpWaeh1rk3KYMti7hfzQFMAjvBxx02r4bkECY18zFCE/2pbB/eNCOrwCaC2VsfSu4azZnc0PB8/w968P89ZtQ1t9nVAPg6vRhUZrdAKqqG3ATdt1SaagbUQA76NE+zubV2q2aiVPfXWQ9ELD6svTUcPRM6XcuGS7efsQdwdGBLsazXNdGOzr1KYFlzXRqJS8cH0k8aFuPLn2INMWbeNfNw7hluHtz5FWSAZn9q/2nuK6aB88nWwpqjBcKQzr72IRwMaEujE+3IMlf6QxNz6IR68M47Xfkhng6cjn80dz9HSp1eax/3ToDKXV9cwaFdjisdT8cty1GnMQO1fZ2Lzz8i/JJOeV8/LNUe2eJNtLZYR5nuDt9akEuTvw2FUDWmwX5qllbVIOpdX1Fj6bPY2jreH/qFzkwa2OCOB9FFORad4ne1rMzdaoFUT7uTBrVCDR/s4M8XO2Wrv7+TIp0otfHx/H458f4K9fHWR7WhH/umlImycRSZI4eMqgn54TH0RFbYPZzb2qrmWgeHpKBNMWbeNwTim7M4vxdbbj03tH4myntuo89lW7ThLi4cDokJYTGVPyyonwbry62JJqMIfY8+wkVu/K5j8bUsksquT92cPxbMdSrS0evTKMrKJK3l6fSqCbPTcOs3TEMRUy0wsriA24cCZaWhHAewwRwPsw8aHuhHg4cPxMOaNDXHl4YhhRfs7nrevuaXyc7Vh9/ygWbUpj0aYT7D9VwqKZMQzxc27zOUP9nYnp78KiTWmcraxjTIgbuzKLKa2qt/AnHeLnzCAfJzYmF2CjUrDyvlG4W/ly/ujpUvZnl/D8tMgWKQy9XiY1v4I7RjbmxbekFjLEzwkPRw2PTxpAuJeWhV8e5IbF2/nw7jii/Ns+7taQJIlXbokip6Sap746hJ+LHXFBjScSk5QwreDCBnBHjTEHLqSEVuf8RLiCXkFiehH5ZYYRoan5FaiU0iUbvE2olAqemBzOqvtGU1XXwPT/JbJ8eybNRz6Y3HTmJgRRUlXPh1szuDrSi6eviUCnN8xvaUpuSTXHjTZro0Pczku62BGrdmWjUSm4JbalF+Spc1VU1+sYaOzALKupZ192iYX65NooH75+KB6lQuLW9xP58eDpFq/TERqVkvdnD8fXxZb5K5M4ebaxaNm/nx02SgXpbfh39hSmFEpFbevzXgTnjwjgfZSmaoWFV0eY7bES04s6fvIlwJhQN359fDxjB7jzzx+PMX9lEiVVdS22mxrlw3tb0qmoa+DJKREM9XfB01HDumN55m0Ky2uZ/dEuHG1VDPV3Zkd6Eae6OBa1IypqG/h+fy7XD/Vt1ebMVMA0zUlPTCtCp5fNOnETkb5OfP9IAlF+zjz6+X7e/D0FfRsG0W3Rz8GGZXNHmOWFpUbJp0qpINjdgfTzlBKeLyKF0nOIAN5Haa/xorfg6mDDx3PieO66QfyRUsDUd/5kT1YxWU3GyBZX1rE8MYubY/wI93JEoZCYFOnFHymF1NTrKK2q5+5lu8krreGTuSNYetdwFJLEfzaktvObu853+3OprNMxa1RAq483D+BbUovQalTEBrZMZbhrNay6bzS3x/Vn8eY0Hvwsicouph9CPLS8P3s42cVVPLQqiTpjHSTU06GFwXFPI4qYPYcI4H2UByeEtijMxYe697oxnpIkcd+4EL5+KB61SsFtS3cw8c0/APBzsePdjSfQ6fV4GiV7S7ek07+fHVV1OjYeL2De8t2k5pdxw1Bf4oJc8XG2Y058EN/uzzUH1e4iyzKrdmUT6ePU5tjclPxy+rva4aBRIcsyW1MLiQ91a3OUgI1Kwau3RPGP6yPZcDyfW95L7PJVw6gQN16dHk1i+lme++4wsiwT5qElu7iKGuOUxguBRqXERqkQAbwHEAFc0CuI9nfhp0fHWgTIspp6vthzCpVCYW7/j/Z35oOtGdiqFTzxxQH2Z5dgp1ZxY4yv+XkPTQhFa6PizXUpVtm3fdklHD9TxqzRAW3quFPzy4nwMjTrpBdWkltSzYSI9rsvJUliXkIwK+4ZyemSam5csp2dGS2dftrjluH+PHplGF/uzWHplgxCPbXoZTh51roppI7Q2qpEDrwHEAFc0GtwtFVzU0xjgbC8pgG9DP+9fZhFqmjJrFj0eqjT6bG3UfLB3cMtrkb6Odgwf3wI64/lk3TyXLf3a9Wuk2g1qhayPRN1DXoyCivNEkJTM03z/HdbjBvgwXcLEnCxVzP7o12s3pXdpf1bODmc64f68tpvyaQaDZEvRhqlQqzArY4I4IJeg14vs2JHFkP7uzA1yjBDZERgP66NsnTLiQ915+4xhkaae8cGt6rxvmdsMO5aG17/LbmFwqUrlFTV8dOhM9wU42vuOGxORlEFDXrZnP/emlpIiIdDq3PJ2yLEQ8t3CxJICHPnmW8P84/vj1Cv03f8RAwr+TdmRBMb4GJu3b/QAVyrUYkUSg8gArig1/BnWhEZhZWMDXVj/bE8NCoFaYUVLZQ1ielFfLM/1+z72JryxkGj4tErB7Ars5itJ85fmbM2KYe6Bj13jmzZeWnClGsf6O1ETb2OnRlnO736boqTrZplc0dw/7hgVuw4yZxlu1tV5rSGrVrJh3fH0d/VIJ80NRFdKLQaFeVCB251RAAX9BqWb8/E2U7NpztPUq+TWTg5nCWzYi3kkV2RT84cGYB/Pzve+D25y1I9MBQvV+/KJjbAhUjftodRpeSVo1JIBLs7sDuzmNoGfYf577ZQKiSevS6SN28dyt6sc9y4ZDsn8jtXjHXTavhk7gjAkLcvq7lwOWlHW7VIofQAIoALegWZRZVsTjF0Lvo42+LlpGFOfFALeWRX5JM2KgULJ4dzJLeMX46c6fI+7Ug/S0ZRZatzT5qSml9OqIcWG5WCLamF2KgUjA52a/c5HTFjuD+fzx9NZa2Om/+XyKbk/I6fBIR5OpoNqR/+bB8NnUzDdBdHWxXloohpdUQAF/QKPt2RhVopMS3al9T8Ch67aoB56FNTeWRX5ZM3DvMj3EvLW+tSO51TNrFqVzYu9uoOHeuT88oJ927Mf48KdsXOpvtTHYcH9uOHRxIIcrfn3hV7WbolvVP5fFN9YFtaEf/44Wi3agCdRRQxewYRwAWXPBW1DXy1N4drh/iwIjGLIDf7FrO2zxelQuKpKQPJLKpkbVJOp59XUF7D70fzmBHr3+70wIraBnLOVTPQ25HTJdWcKKg4r/x3W/i62PHVA/FMjfLh1V+T+euXBzvUeIcah1oN9HZk1a5sPt6W2e721sBUxLwQJ4vLCRHABZc8XyflUFHbgKuDDcl55Sy8OuK8vTRbY9IgT2IDXPjvhtRON7h8tTeHBr3MzDY6L02YZHvhXo5sNcoHzzf/3RZ2NkoWz4zhr5PD+WZ/Lrd/sJOCsrZd4E1ep9Nj/bh2iDf/75fjrDua1+b21kBrq6JBL7eYjCnoHt36FEiS5CJJUqwkSTMkSXrNWjslEJjQ62VWJGYx2NeJTckFRPo4MS2q/ZRFV5EkiaevGUh+WS2f7sjqcHud3lC8jA91M69m2yK1iYnDltRCvJ1sGdAFs+jOIkkSj141gKWzh3Miv5zrF2/jUE5Jq9u6Otjg6mBDRmElb982jGg/Zx5fc4DDPThmweTKI6SE1qW7y5jbgDhZltcCSJI0v/u7JBA0svVEIRlFldiplWQXV/HUlAgUVrI+a8roEDcmhHuwZHM6pdXtF9u2pBaQW1LN7NHtFy/BkP+2t1Hi7WzLtrQiJoR7WMV3sy2uGeLN1w/Fo1IouHXpDr4/kNvqdmEeWtILK7CzUfLhnDhcHWy4d8UezpRW98h+OWpM81BEIdOadCuAy7L8gSzLHxh/DAEymm8jSdJ8SZL2SpK0t7Dwwts5CXo3KxKzcNQYzHhHBrky0crph6Y8NSWC0mrDaNr2WLUzGw9HDZMjvTp8zdT8cgZ4OXIop4TymgZzy39PMsjHiR8eSWCovwuPrznQqkyy6VArT0dbls0dQVWdjnuW7+2Rud1NbdUE1sMqiURJkkKAYlmWNzR/zBjk42RZjvPw6Pl/XkHfwSQdrNfrKamq5+lrInp09TrEz5lp0T58vC3TbOTcnJxzVWxKKeD2uP6dysOn5pcz0Jj/VkgwNsw6zj8d4abV8Nl9o5g5sj9LNqczf2WSRfAM9dByrqqes0YbughvR5bMiiU1v5zHPt+P7jx08e0hJhL2DB3+Bxrz2/ObfU1qttkMWZYf6KF9FFymrEjMAqCmXs+VAz0t3GV6ir9eHUGdTs/iTSdafXzN7lMAFs46bVFUUUtRRR3h3ob897D+LhYuQT2NjUrByzdH8c/rI9mcUsAt/2ucaGgqZJp8UgEmhHvwzxsGsym5gH/9dMyq+yJmgvcMHQZwWZbXmlIlTb7MK21JkmbIsvy68XZsT+6s4PKhvKbeQtb35NURF+T3Brs7cFtcf1bvzm4xvrVep2fNnlNcGeGJf7+O55iYCpiejhoO5ZYyIdyzR/a5PSRJYm5CMCvmjSSvrIYbFm9jR/pZc/G1+UyUu0YHcu/YYJYnZplPoNbA5LkqUijWpbsqlEnAa5IkJUmSlAT0/BJJcFlgkg4C3DjMt91WdWvz+FUDDKYP6y1NH9Yfy6eoopZZo9uXDppINgbwgvJaZNn68sGuMHaAO98tSMDVwYZZH+1k2fZM7NRKcwBPTC9i6RbDoKtnpg5i0iAvXvzxKJuTrTMzRSuKmD1Cd4uYG2RZDpVlebjxq0UOXCDoKoapgycBUCkkFk4Ov6C/39vZlrnxQXx7IJfkvDLz/at2ncTPxa7TK+nU/HJcHWw4eroUF3s1Ue2YM18Igt0d+HZBAtH+znyyPYvqeh3pxmFgj6zeT7TRRFmpkHjnjmEM8nHikdX7OHa6rINX7hhTCkV0Y1oX0cgjuOTYeqKQTKNt2u0j+hPo5nDB9+GhiaFoNSre/N2wCs8orGB72llmjuyPspMyxuS8csK9tPx5oohxAzw6/byexMlWzdcPJTDN2P6/L/ucefhX0xEEDhoVH88ZgaOtmntX7Gm3MagzqJUKbNUKkUKxMiKACy45lhtzr7ZqBY9dNeCi7IOLvQ0PTghlw/F8kk4Ws3pXNiqFxG0jOtfCr9fLnMgvRy8bTJXHD7gw6pPOoFRILL4zlimDvSmvaWD2qIBWZ6Z7O9vy8dw4SqvruXfFXqrquhd8tRo1ZWIFblVEABdcUmQUVvBHiqFfYG58MF5OthdtX/R6GSdbNa/8kszafTlMGexNWkGFOVfcHrkl1VTW6cg3rlwnXAD9d1dITC9iT1ZxuzPTAQb7OrNoZgxHT5fylzUHuiUvdLJViRW4lREBXHBJ8akx9+1oq+Khi2zAPDyoHw16PXtPnqOkqp5h/Z0tcsXtYTJxyCutYaC3I54X8UTUnK7MTAe4apAXz10Xybpj+bz2W/J5/16trUoUMa2MCOCCS4bymnq+2mvQWT84IfSCaqZbIz7UnaWzh6OQwMVezXtbMlrkitsixTjEqjvmDT1FV2amm5iXEMTdYwL5YGtGlz05TWg1YqSstREBXHDJ8HVSDpV1Oty1GuYlBF3s3QFgfLgHd48JpKSqvs1ccWuYVuAAE6w4PtYadHVmOhj05C9Mi2RihAfPf3+EP090fSyGo0ihWB0RwAWXBE2lg49dFYa9TesGwReaxPQifjh4psNccXNMY2TtbZQMD+rXk7t4wVApFSyaGcMATy0Pf7bPfIydRatRi05MKyMCuOCSYItROtjf1Y47RnSuUaan6Wqu2ES9Tk96oaFBZkyIGxpV9913LhUcbdV8PHcEtjZK5n2yp82ZMa0/V+TArY0I4IJLguXbswB4YlI4NqpL49/yfHLFYBjCVa8zqDUutfy3NfBzsePjOXGcrazl/k/3dtoEw5RCEa481uPS+KQILmvSCyvYklpIuJeWG4f5XezdMXM+uWKwzH9b0z7tUiLa34X/3h7DwZwS/vrlwRbjaltDq1Ghl6GqrnMBX9AxIoALLgpLt6SbUxGfGht3rh/qy4d/tj+LuzdgCuCBbvYEuV/4LtILxTVDvPn7tQP5+fAZ3lqf0uH2jmKgldURAVxwUYj2N2iqNx7PZ21SDgM8Hfhke1anNNaXOiYJYV9dfTfl/nEh5pnjXxoloG3ROFJW5MGtxaVR6hdcdpjyyfM/TaKyTkdeWS3v3zW80zK9SxnTCvxS677sCSRJ4qUbh3CquJpnvjmMfz+7Nv+GjbZqYgVuLcQKXHDRiA915y7jaNZ58UF9InhX1TWQXVyFWikxJtTtYu/OBUGtVLBkVizB7g48uDLJrMBpjsmVR6RQrIcI4IKLRmJ6EV/szemyxvpSJjXfELziAl1x0Fw+F7jOdmqWzR2BWqngnuV7KK6sa7GNcOWxPiKACy4K56uxvlQxFWVNLjzjwz0sTBIuB/q72vPhnDjOlNYw/9O91DZYqk3MRUwRwK2GCOCCi8L5aqwvVUxF2c0pBgcbFzt1pwdf9SViA/rx9m1D2XvyHE+vPWSh+Ta58pSJIqbVuHyu8QSXFK1pqeND3XttHtx0Arr7493Y2yh5Y11Kpwdf9TWmRfty8mwVb/yeQpCbA08YHZVMAVzkwK2HWIELBFYiPtQdT0cNVXW6Lg2+6os8PDGUW2L9eWfjCb7bnwsYjCQcbJQihWJFRAAXCKxEYnoR1fU6HrkitM8UZc8XSZJ4ZXoUo0NceXrtIXZnFgOmmeAigFsLEcAFAitgKsoumRXLk1MG9vqirDWwUSlYOns4/v3seGDlXrKKKg0zwUUKxWqIAC4QWIG+VpS1Fi72NiybO4Kaeh0zP9iJDJQbA/jlptLpCUQAFwiswPkOvrocCHJ34KkpAzlTVkNGYSXlNfXmK5bLTaVjbUQAFwgEPc49Y4N5eKLhZHayqNLcA3A5F3qtgQjgAoHggvD0NQMZP8Cd4i7a0wnaRgRwgUBwQUhML+LI6bI+NTrhYiMCuEAg6HH62uiESwURwAUCQY8jVDo9g3Qh/eni4uLkvXv3XrDfJxAIBH0BSZKSZFmOa36/WIELBAJBL0UEcIFAIOiliAAuEAgEvZRuj5OVJGmS8eZkWZb/1t3XEwgEAkHn6NYKXJKkWCBWluUNQKwkSSHW2S2BQCAQdES3VuCyLO8D9kmS5AJkyLKc0XwbSZLmA/ONP1ZIkpQCuAOXiwD0cjpWuLyO93I6VhDHezEJbO1Oq8gIjWmUWFmWX+/k9ntbk8T0RS6nY4XL63gvp2MFcbyXIh2uwCVJmgG4Nrs7w5g2AUCW5Q2SJN0qSdIMWZbXWnsnBQKBQNCSDgN4ewFZkqTXgHRZlj8ASmgZ6AUCgUDQQ3RXRvg+kGFMobgYA3ln6Ox2fYHL6Vjh8jrey+lYQRzvJccFbaUXCAQCgfUQjTwCgUDQSxEBXCAQCHopFz2AS5I0yfj12sXel55EkiQXSZJiJUma0deP1YTxWNdf7P3oCYzHNsnY59Cn6ct/x+b0ts/pRQ3gl1kn521AnEnVczl88PuqpNQorcUkpW0yTqJP0lf/jm3Qqz6n3Z6F0h0608nZV2im0AkBLosVTR9lBPCF8XYGEAtsaHtzQW+ht31OL3oKxUgckH6xd+JCYLzKKG7aCCXodbg0+9ntouyFoMfoLZ/THl+BX06dnJ05VmCGLMsPXMDd6jE6ebx9EdG01vfpFZ/THg/gl1MnZ0cnH+MJ6nXj7VhjCqnX0ptPtt1kD42r8Ev+MlvQNXrT5/Rip1DOt5Oz12E8xtckSUqSJCmJXn6y6gzGY44zFf36CsYTV0iT/9s+fcXRV/+OrdHbPqeiE1MgEAh6KRd7BS4QCASC80QEcIFAIOiliAAuEAgEvRQRwAUCgaCXIgK4QCAQ9FJEABcIBIJeigjgAoFA0Ev5/8ER48xLpx4pAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def my_plotter(ax, data1, data2, param_dict):\n",
    "    \"\"\"\n",
    "    A helper function to make a graph\n",
    "\n",
    "    Parameters\n",
    "    ----------\n",
    "    ax : Axes\n",
    "        The axes to draw to\n",
    "\n",
    "    data1 : array\n",
    "       The x data\n",
    "\n",
    "    data2 : array\n",
    "       The y data\n",
    "\n",
    "    param_dict : dict\n",
    "       Dictionary of kwargs to pass to ax.plot\n",
    "\n",
    "    Returns\n",
    "    -------\n",
    "    out : list\n",
    "        list of artists added\n",
    "    \"\"\"\n",
    "    out = ax.plot(data1, data2, **param_dict)\n",
    "    return out\n",
    "\n",
    "data1, data2, data3, data4 = np.random.randn(4, 100)\n",
    "fig, ax = plt.subplots(1, 1)\n",
    "my_plotter(ax, data1, data2, {'marker': 'x'})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "如果需要两个子图可以如下: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f20ab3330f0>]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, (ax1, ax2) = plt.subplots(1, 2)\n",
    "my_plotter(ax1, data1, data2, {'marker': 'x'})\n",
    "my_plotter(ax2, data3, data4, {'marker': 'o'})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 八、后端\n",
    "\n",
    "网站和邮件列表上的许多文档都提到“后端”，许多新用户对该术语感到困惑。 matplotlib针对许多不同的用例和输出格式。有些人从python shell交互地使用matplotlib，并且在键入命令时弹出绘图窗口。有些人运行Jupyter笔记本并绘制内联图以进行快速数据分析。其他人则将matplotlib嵌入到wxpython或pygtk等图形用户界面中，以构建丰富的应用程序。有些人在批处理脚本中使用matplotlib从数字模拟生成后记图像，还有一些人运行Web应用程序服务器以动态提供图形。\n",
    "\n",
    "为了支持所有这些用例，matplotlib可以针对不同的输出，这些功能中的每一个都称为后端。 “前端”是用户面对的代码，即绘图代码，而“后端”则是幕后所有艰苦的工作，以制作图形。后端有两种类型：用户界面后端（用于pygtk，wxpython，tkinter，qt4或macosx；也称为“交互式后端”）和用于制作图像文件的硬拷贝后端（PNG，SVG，PDF，PS；也称为“非交互式后端”）。\n",
    "\n",
    "后端区别不同的用途有不同的后端，默认是agg。\n",
    "\n",
    "详细请参考原文档。\n",
    "\n",
    "### 九、什么是互动模式？\n",
    "\n",
    "使用交互式后端（请参阅什么是后端？）允许（但本身并不需要或确保）对屏幕进行绘图。 是否以及何时在屏幕上进行绘制，以及在屏幕上绘制图形后脚本或Shell会话是否继续，取决于调用的函数和方法，以及确定matplotlib是否处于“交互模式”的状态变量。 默认布尔值由matplotlibrc文件设置，并且可以像其他任何配置参数一样进行自定义（请参阅使用样式表和rcParams自定义Matplotlib）。 也可以通过matplotlib.interactive（）进行设置，并且可以通过matplotlib.is_interactive（）查询其值。 很少需要在绘图命令中间（无论是在脚本中还是在Shell中）打开和关闭交互模式，并且可能会造成混淆，因此在下文中，我们将假定所有绘图都是通过打开或关闭交互模式完成的 。\n",
    "\n",
    "详细请参考原文档。\n",
    "\n",
    "### 十、性能\n",
    "\n",
    "无论是以交互方式浏览数据还是以编程方式保存大量绘图，渲染性能都可能成为管道中的一个痛苦瓶颈。 Matplotlib提供了几种方法，以稍微改变绘制外观（达到可设置的公差）为代价，大大减少了渲染时间。减少渲染时间的可用方法取决于所创建绘图的类型。\n",
    "线段简化\n",
    "\n",
    "对于具有线段的图（例如，典型的线图，多边形的轮廓等），可以通过matplotlibrc文件中的path.simplify和path.simplify_threshold参数来控制渲染性能（有关更多信息，请参见使用样式表和rcParams自定义Matplotlib）。有关matplotlibrc文件的信息）。 path.simplify参数是一个布尔值，指示是否完全简化了线段。 path.simplify_threshold参数控制简化的线段数量；阈值越高，渲染越快。\n",
    "\n",
    "详细请参考原文档。\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  },
  "pycharm": {
   "stem_cell": {
    "cell_type": "raw",
    "metadata": {
     "collapsed": false
    },
    "source": []
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
